贯穿Michael Hartl的Rails教程。在运行generate命令的3.2.1节中,我得到一个调用响应但不是预期的创建响应:
$ rails generate integration_test static_pages
invoke rspec
我可以简单地创建预期的/requests/static_pages_spec.rb文件,但我想了解为什么我没有得到教程中显示的预期输出:
$ rails generate integration_test static_pages
invoke rspec
create spec/requests/static_pages_spec.rb
这是我的gem文件,用于添加引用:
source 'https://rubygems.org'
ruby '2.1.1'
gem 'rails', '4.1.0'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'spring', group: :development
group :development do
gem 'better_errors'
gem 'binding_of_caller', :platforms=>[:mri_19, :mri_20, :mri_21, :rbx]
gem 'quiet_assets'
gem 'rails_layout'
end
group :development, :test do
gem 'sqlite3'
gem 'factory_girl_rails'
gem 'rspec-rails', '~> 2.14.1'
end
group :production do
gem 'thin'
gem 'pg', '~> 0.17.1'
gem 'rails_12factor', '~> 0.0.2'
end
group :test do
gem 'capybara'
gem 'database_cleaner'
gem 'faker'
gem 'launchy'
gem 'selenium-webdriver'
end
编辑:按照以下评论中的建议从application.rb文件添加代码。评论中的代码格式化正在逃避我......
config.generators do |g|
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
controller_specs: false,
request_specs: false
g.fixture_replacement :factory_girl, dir: "spec/factories"
end
我做了一些谷歌挖掘,但没有太多运气找到所有可能的选项g.test_framework方法的一个很好的概述。不确定问题是否存在。
编辑2:为可能有相同问题的其他人添加 - 应用程序是使用rails-composer生成的https://github.com/RailsApps/rails-composer/我假设这是一个自动配置设置作为设置的一部分。
答案 0 :(得分:1)
未经测试,但我认为如果您将false
的值更改为true
request_specs
,那么事情将对您有用。
config.generators do |g|
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
controller_specs: false,
request_specs: false #change this one!
g.fixture_replacement :factory_girl, dir: "spec/factories"
end
答案 1 :(得分:0)
您是否正确安装了rspec-rails? rails generate rspec:install
如果您这样做,请确保config/application.rb
中有类似的内容:
config.generators do |g|
g.orm :active_record
g.template_engine :haml
g.test_framework :rspec, fixture_replacement: :factory_girl
g.factory_girl dir: 'fixtures/factories'
end
在那里