Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rlafranchi/system_tester
A Development Tool for creating and managing system tests for Ruby on Rails >= 5.1 Applications
https://github.com/rlafranchi/system_tester
devtool rails ruby-gem test-automation testing-tools
Last synced: 3 months ago
JSON representation
A Development Tool for creating and managing system tests for Ruby on Rails >= 5.1 Applications
- Host: GitHub
- URL: https://github.com/rlafranchi/system_tester
- Owner: rlafranchi
- License: mit
- Created: 2017-06-28T13:57:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-08-19T22:19:12.000Z (over 7 years ago)
- Last Synced: 2024-10-12T03:54:14.587Z (3 months ago)
- Topics: devtool, rails, ruby-gem, test-automation, testing-tools
- Language: Ruby
- Homepage: https://rlafranchi.github.io/system_tester/
- Size: 330 KB
- Stars: 73
- Watchers: 6
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: MIT-LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/rlafranchi/system_tester.svg?branch=master)](https://travis-ci.org/rlafranchi/system_tester)
[![Code Climate](https://codeclimate.com/github/rlafranchi/system_tester/badges/gpa.svg)](https://codeclimate.com/github/rlafranchi/system_tester)
[![Test Coverage](https://codeclimate.com/github/rlafranchi/system_tester/badges/coverage.svg)](https://codeclimate.com/github/rlafranchi/system_tester/coverage)
# System Tester
A development tool for creating and managing system tests in Ruby on Rails >= 5.1 applications## Usage
This gem is used only in development and is a mountable rails engine that creates JSON endpoints for a chrome extension.## Installation
Add this line to your application's Gemfile:```ruby
gem 'system_tester', group: :development
```Add the system_tester db to `config/database.yml`
```yml
# you may want to consider a shared MySQL/Postgres database
# if you have a team that needs shared access
system_tester:
<<: *default
database: db/system_tester.sqlite3
```And then install and run the migrations:
```bash
$ bundle install
$ rails system_tester:migrate
```Mount the engine in config/routes.rb:
```ruby
Rails.application.routes.draw do
# ... other routes
# Mount in development environment only
if Rails.env.development?
mount SystemTester::Engine => "/system_tester"
end
end
```Start your dev server and you are good to go.
## Chrome extension
[![System Tester Demo](https://img.youtube.com/vi/bxHQKaIT7iM/0.jpg)](https://youtu.be/bxHQKaIT7iM)The chrome extension provides a Devtools tab and acts as a client to this gem.
**[ADD TO CHROME](https://chrome.google.com/webstore/detail/system-tester/ebpjncfolmfiiphibdajgblbchkklbcf)**
## Design
System Tester is designed to work with a chrome extension, but could potentially be used for other applications as well.
Run `rails routes` to see what endpoints are provided. The following design was set in place for the easy of reusing
testing steps:
* Features - the top level: one test script for a feature
* Scenarios - 1:M assocation from Feature to Scenario. A Scenario is one test method.
* Steps - Basically a line of code that can be an action or an assertion. STI is used to provide different step types.
* ScenarioSteps - M:M assocation for Steps and Scenarios which also as a position attribute to allow for reordering.
* Stairs - an ordered group of steps that can be reused.
* StairSteps - M:M association to support stairs, Stair inherits from Step so the fk points back to the same table.## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).