在创建新的Rails应用程序时,如何告诉Rails使用RSpec而不是test-unit?

aar*_*ona 149 rspec testunit rspec2 ruby-on-rails-3

我已经test-unit安装和rspec安装(沿-core,-expectations,-mocks-rails版本2.6.x的).当我运行该命令时rails new foo,它用于test-unit生成测试存根文件而不是rspec.

有没有一个选项,我可以告诉rails使用rspec来生成测试?

Zab*_*bba 258

以下应该有效:

在命令行:

rails new MYAPP -T # The -T option tells rails not to include Test::Unit
Run Code Online (Sandbox Code Playgroud)

在Gemfile中:

gem 'rspec-rails'
Run Code Online (Sandbox Code Playgroud)

在命令行:

bundle install
rails g rspec:install
Run Code Online (Sandbox Code Playgroud)

  • 你不需要`generator.rb`初始化程序,这由RSpec的铁路公司负责.你所需要的只是`gemfile`的`development`组中的`rspec-rails`,这足以要求它用于生成器.您也不需要使用`-T`生成应用程序,您可以删除`test`目录,它将起作用. (58认同)
  • 当您添加`rspec-rails` gem时,将其置于测试**和**开发中很重要,否则即使您按照上述步骤,生成器也不会使用RSpec. (13认同)
  • @RyanBigg:使用-T选项我们将在`application.rb`中注释``rails/test_unit/railtie"` (8认同)

Say*_*yuj 72

创建新的rails应用程序:

rails new <app_name> -T
Run Code Online (Sandbox Code Playgroud)

或者test从现有应用程序中删除您的目录:

rm -rf test/
Run Code Online (Sandbox Code Playgroud)

在Gemfile中输入一个条目:

gem 'rspec-rails'
Run Code Online (Sandbox Code Playgroud)

从命令行安装gem

$ bundle install
Run Code Online (Sandbox Code Playgroud)

从命令行安装rspec到您的应用程序:

$ rails g rspec:install
Run Code Online (Sandbox Code Playgroud)

现在您的rails应用程序使用RSpec而不是测试单元.

  • 该列表中缺少"捆绑安装"步骤.添加. (2认同)

Nes*_*ric 5

使用以下方法创建Rails应用程序后:

rails new <app_name> -T  # to exclude Test::Unit
Run Code Online (Sandbox Code Playgroud)

通过以下方式将RSpec gem添加到您的Gemfile中:

group :development, :test do
  gem "rspec-rails"
end
Run Code Online (Sandbox Code Playgroud)

在命令行中输入:

bundle install  # this will install the missing gems
Run Code Online (Sandbox Code Playgroud)

现在,您需要运行以下命令来安装RSpec:

rails generate rspec:install
Run Code Online (Sandbox Code Playgroud)

这将生成以下文件:

create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/rails_helper.rb
Run Code Online (Sandbox Code Playgroud)

我强烈建议您通读所有spec_helper和rails_helper注释,以更好地了解每个选项的作用。

设置完所有内容后,您可以使用以下命令运行所有测试:

bundle exec rspec
Run Code Online (Sandbox Code Playgroud)

您可以在https://kolosek.com/rails-rspec-setup上阅读有关建议的spec_helper和rails_helper配置的更多信息。