Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 在创建新的Rails应用程序时,我如何告诉Rails使用RSpec而不是测试单元?_Ruby On Rails 3_Rspec_Rspec2_Testunit - Fatal编程技术网

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