bundle install
spring binstub --all spring status spring stop && start
guard init
time spring rspec guard
| group :development, :test do | |
| gem "rspec-rails", "~> 3.1.0" | |
| gem "factory_girl_rails", "~> 4.4.1" | |
| gem "spring-commands-rspec" | |
| gem 'guard-rspec' | |
| gem 'rb-fsevent' if `uname` =~ /Darwin/ | |
| end | |
| group :test do | |
| gem "faker", "~> 1.4.3" | |
| gem "capybara", "~> 2.4.3" | |
| gem "database_cleaner", "~> 1.3.0" | |
| gem "launchy", "~> 2.4.2" | |
| gem "selenium-webdriver", "~> 2.43.0" | |
| end |
| # A sample Guardfile | |
| # More info at https://github.com/guard/guard#readme | |
| # Note: The cmd option is now required due to the increasing number of ways | |
| # rspec may be run, below are examples of the most common uses. | |
| # * bundler: 'bundle exec rspec' | |
| # * bundler binstubs: 'bin/rspec' | |
| # * spring: 'bin/rsspec' (This will use spring if running and you have | |
| # installed the spring binstubs per the docs) | |
| # * zeus: 'zeus rspec' (requires the server to be started separetly) | |
| # * 'just' rspec: 'rspec' | |
| guard :rspec, cmd: 'spring rspec' do | |
| watch(%r{^spec/.+_spec\.rb$}) | |
| watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } | |
| watch('spec/spec_helper.rb') { "spec" } | |
| # Rails example | |
| watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } | |
| watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } | |
| watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] } | |
| watch(%r{^spec/support/(.+)\.rb$}) { "spec" } | |
| watch('config/routes.rb') { "spec/routing" } | |
| watch('app/controllers/application_controller.rb') { "spec/controllers" } | |
| watch('spec/rails_helper.rb') { "spec" } | |
| # Capybara features specs | |
| watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" } | |
| # Turnip features and steps | |
| watch(%r{^spec/acceptance/(.+)\.feature$}) | |
| watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' } | |
| end |
| # This file is copied to spec/ when you run 'rails generate rspec:install' | |
| ENV["RAILS_ENV"] ||= 'test' | |
| require 'spec_helper' | |
| require File.expand_path("../../config/environment", __FILE__) | |
| require 'rspec/rails' | |
| # Add additional requires below this line. Rails is not loaded until this point! | |
| # Requires supporting ruby files with custom matchers and macros, etc, in | |
| # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are | |
| # run as spec files by default. This means that files in spec/support that end | |
| # in _spec.rb will both be required and run as specs, causing the specs to be | |
| # run twice. It is recommended that you do not name files matching this glob to | |
| # end with _spec.rb. You can configure this pattern with the --pattern | |
| # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. | |
| # | |
| # The following line is provided for convenience purposes. It has the downside | |
| # of increasing the boot-up time by auto-requiring all files in the support | |
| # directory. Alternatively, in the individual `*_spec.rb` files, manually | |
| # require only the support files necessary. | |
| # | |
| # Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } | |
| # Checks for pending migrations before tests are run. | |
| # If you are not using ActiveRecord, you can remove this line. | |
| ActiveRecord::Migration.maintain_test_schema! | |
| RSpec.configure do |config| | |
| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures | |
| config.fixture_path = "#{::Rails.root}/spec/fixtures" | |
| # If you're not using ActiveRecord, or you'd prefer not to run each of your | |
| # examples within a transaction, remove the following line or assign false | |
| # instead of true. | |
| config.use_transactional_fixtures = true | |
| # RSpec Rails can automatically mix in different behaviours to your tests | |
| # based on their file location, for example enabling you to call `get` and | |
| # `post` in specs under `spec/controllers`. | |
| # | |
| # You can disable this behaviour by removing the line below, and instead | |
| # explicitly tag your specs with their type, e.g.: | |
| # | |
| # RSpec.describe UsersController, :type => :controller do | |
| # # ... | |
| # end | |
| # | |
| # The different available types are documented in the features, such as in | |
| # https://relishapp.com/rspec/rspec-rails/docs | |
| config.infer_spec_type_from_file_location! | |
| # Include Factory Girl syntax to simplify calls to factories | |
| config.include FactoryGirl::Syntax::Methods | |
| end |