2

This is the first time, I'm trying BDD and testing, I'm trying things by seeing tutorials and my problem is I found that guard is looking for spec folder as defined in its guard file, but there is no spec folder, I have test folder instead.

when I run

guard

it tries to load spec folder but there is no spec folder. is it okay to edit the guard file to look for test folder instead of spec folder?

Am I supposed to do rspec install?

rails g rspec install

Could not find generator rspec.

my gem file

source 'https://rubygems.org'

gem 'rails',     path: '/home/phanindra/rails'
gem 'journey', git: 'https://github.com/rails/journey.git'
gem 'arel',      git: 'https://github.com/rails/arel'
gem 'activerecord-deprecated_finders', git: 'https://github.com/rails/activerecord-deprecated_finders'

gem 'sqlite3'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sprockets-rails', git: 'https://github.com/rails/sprockets-rails'
  gem 'sass-rails',   git: 'https://github.com/rails/sass-rails'
  gem 'coffee-rails', git: 'https://github.com/rails/coffee-rails'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', platforms: :ruby

  gem 'uglifier', '>= 1.0.3'
end
gem 'rb-inotify', '~> 0.8.8'
gem 'jquery-rails'

# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

group :test, :development do
  gem 'cucumber-rails', :require => false
  gem 'database_cleaner'
  gem 'rspec'
  gem 'spork'
  gem 'guard'
  gem 'guard-rspec'
  gem 'launchy'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano', group: :development

# To use debugger
# gem 'debugger'

my guard file

# A sample Guardfile
# More info at https://github.com/guard/guard#readme

guard '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)$})                 { |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" }

  # Capybara features specs
  watch(%r{^app/views/(.+)/.*\.(erb|haml)$})          { |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

by following the answer on Could not find generator rspec:install. I have added rspec-rails to my gem file and did bundle install, then rspec generator worked and it generated spec folder.

But it does not have any folders like fixtures or acceptance or functional etc in test folder!!

Community
  • 1
  • 1
pahnin
  • 5,367
  • 12
  • 40
  • 57

2 Answers2

2

according to the official document(https://github.com/rspec/rspec-rails#install), I think you should run :

# not: rails g rspec install
rails generate rspec:install   

to generate the "spec" folder and "spec/spec_helper.rb" file and other related stuff.

Siwei
  • 19,858
  • 7
  • 75
  • 95
0

Try adding the Rails Rspec gem to your gem file:

group :development do
  gem 'rspec-rails'
end

run bundle install then rails generate rspec:install

sas
  • 3
  • 3