Ruby on rails 3 在创建新的Rails应用程序时,我如何告诉Rails使用RSpec而不是测试单元?
我已经安装了Ruby on rails 3 在创建新的Rails应用程序时,我如何告诉Rails使用RSpec而不是测试单元?,ruby-on-rails-3,rspec,rspec2,testunit,Ruby On Rails 3,Rspec,Rspec2,Testunit,我已经安装了测试单元和rspec(以及-core、-expectations、-mock和-rails版本2.6.x)。当我运行命令railsnewfoo时,它使用testunit来生成测试存根文件,而不是rspec 有没有一个选项可以让rails使用rspec来生成测试?以下应该可以: 在命令行: 在文件中: 在命令行: 创建新的rails应用程序,如下所示: rails new <app_name> -T 在您的文件中创建一个条目: gem 'rspec-rails' 从命令
测试单元
和rspec
(以及-core
、-expectations
、-mock
和-rails
版本2.6.x)。当我运行命令railsnewfoo
时,它使用testunit
来生成测试存根文件,而不是rspec
有没有一个选项可以让rails使用rspec来生成测试?以下应该可以: 在命令行: 在文件中: 在命令行:
创建新的rails应用程序,如下所示:
rails new <app_name> -T
在您的文件中创建一个条目:
gem 'rspec-rails'
从命令行安装gem
$ bundle install
从命令行将rspec安装到应用程序中:
rm -rf test/
$ rails g rspec:install
现在,您的rails应用程序使用RSpec而不是测试单元。我是一名新开发人员,我刚刚制作了一个rails标志(-RSpec)来解决OP的问题。它去掉了Test::Unit,并用bash脚本插入rails rspec gem。通过自动添加RubyRacer gem或创建自定义标志和Gemset,可以修改脚本以帮助linux开发人员。(可能会特别转到gem行并删除注释) 这里是要点&我希望这对其他人有所帮助。
一旦您使用以下工具创建了rails应用程序:
rails new <app_name> -T # to exclude Test::Unit
在命令行写入中:
bundle install # this will install the missing gems
现在,您需要通过运行以下命令来安装RSpec:
rails generate rspec:install
这将生成以下文件:
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
我强烈建议阅读所有spec\u helper和rails\u helper注释,以便更好地了解每个选项的功能
设置好所有内容后,您可以使用以下工具运行所有测试:
bundle exec rspec
您可以在上阅读有关推荐的spec\u helper和rails\u helper配置的更多信息。使用
rails
CLI没有实现这一点的本机方法。生成一个没有测试单元的新项目:
rails新rails应用程序--跳过测试
然后按照
rspec
说明将其集成到新的Rails应用程序中。我认为其中的一些步骤是不符合顺序的,不是吗?如果按正确的顺序进行,这看起来是可行的。请编辑您的答案,我会将其标记为已接受。您不需要生成器.rb
初始值设定项,这由RSpec的railtie负责。您所需要的就是Gemfile
的development
组中的rspec rails
,这足以满足生成器的需要。您也不需要使用-t
生成应用程序,您可以删除test
目录,它就会工作。您可以编辑g.test\u framework=:rspec到g.test\u framework的代码吗:rspec@RyanBigg:使用-T选项,我们将有“rails/test\u unit/railtie”
在application.rb中注释掉了rspec rails
gem,当您添加rspec rails时,对其进行测试和开发非常重要,否则即使您按照上述步骤操作,生成器也不会使用rspec。该列表中缺少“bundle install”步骤。补充。
bundle install # this will install the missing gems
rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
bundle exec rspec