Regressor
Regressor is a regression based testing tool. What is regression testing? see here. You can generate specs based on your ActiveRecord models.
Made with
Get Regressor
Directly from GitHub
gem 'regressor', git: 'https://github.com/ndea/regressor.git', branch: 'master'
or
Rubygems
gem 'regressor', '~> 0.6.2'
Install
bundle install
rails g regressor:install
This will create an initializer in config/initializers. This initializers looks like this:
Initializer
# If the regressor gem is inside a group wrap your initializer in
# if defined?(Regressor) do .. end
Regressor.configure do |config|
# Defines the path where the generated files for your models will be placed
# config.regression_path = 'spec/models/regression'
# Defines the path where the generated files for your controllers will be placed
# config.regression_controller_path = 'spec/controllers/regression'
# Exclude Models for regression spec generation.
# Provide model names as String (e.g. 'User')
# config.excluded_models = []
# Exclude Controllers for regression generation.
# Provide controller names as String (e.g. 'UsersController').
# config.excluded_controllers = []
# If you are using enums in Rails 4 enable this option to generate regression specs for enums.
# If your Rails version is =< Rails 3 set this option to false.
# Default this option is set to true.
# config.include_enums = true
end
Then require the gem dependency 'shoulda-matchers' in your rails_helper (or spec_helper if you're using RSpec 2.x):
require 'shoulda/matchers'
If you are using mongoid please add mongoid-rspec.
Usage
Run the generator:
Be sure to run the generators in the test
environment so that development
-only gems are not being loaded, causing strange issues with controller filters and ActiveRecord callbacks.
ActiveRecord
RAILS_ENV=test rails generate regressor:model # Create Regression specs for your models
RAILS_ENV=test rails generate regressor:controller # Create Regression specs for your controllers
Mongoid
RAILS_ENV=test rails generate regressor:mongoid:model # Create regression specs for your mongoid models
Factories
You can even generate empty factories for your models simply by running
RAILS_ENV=test rails generate regressor:factory # Create empty factories based on your models
Supported Regressions
Factories
Empty factories can be created.
Models
ActiveRecord
- Relations
- belongs_to
- has_many
- has_one
- Nested Attributes
- Validations
- Length
- Presence
- Numericality
- Database
- Columns
- Indexes
- Enums (Rails 4)
Mongoid
- Relations
- belongs_to
- has_many
- has_one
- embeds_one
- embeds_many
- Database
- Fields
- Document
- Includes
- Versioning
Controllers
- Routing
- Callbacks
- Before filter
- After filter
- Around filter
Also see
Airpair - Generate specs for your Rails application
Contributing
- Fork it ( https://github.com/ndea/regressor/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contribution topics wanted
- Specs
- Documentation
- Bugfixes
- Codestyle
- Anything that improves this gem