在创建一个新的 Rails 应用程序时,我如何告诉 Rails 使用 RSpec 而不是测试单元?

我已经安装了 test-unitrspec(以及 -core-expectations-mocks-rails版本2.6.x)。当我运行命令 rails new foo时,它使用 test-unit而不是 rspec来生成测试存根文件。

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

46588 次浏览

以下措施应该奏效:

在命令行:

rails new MYAPP -T # The -T option tells rails not to include Test::Unit

在 Gemfile:

gem 'rspec-rails'

在命令行:

bundle install
rails g rspec:install

创建新的 Rails 应用程序:

rails new <app_name> -T

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

rm -rf test/

在你的 Gemfile 中做一个条目:

gem 'rspec-rails'

从命令行安装 gem

$ bundle install

从命令行将 rspec 安装到应用程序中:

$ rails g rspec:install

现在,Rails 应用程序使用 RSpec 而不是测试单元。

我是一个新的开发人员,我刚刚制作了一个 Rail 标志(- rspec)来解决 OP 的问题。它去掉 Test: : Unit 并用 bash 脚本插入 ails-rspec gem。这个脚本可以通过自动添加 therubyracer gem 或创建自定义标志和 gemset 来帮助 Linux 开发人员。(也许可以特别转到 gem 行并删除注释)

这是要点 & & 我希望这能帮助有些人。 Https://gist.github.com/mten/8310116

创建 Rails 应用程序之后,使用以下命令:

rails new <app_name> -T  # to exclude Test::Unit

将 RSpec gem 以下面的方式添加到 Gemfile:

group :development, :test do
gem "rspec-rails"
end

在命令行中写道:

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 _ helper 和 ails _ helper 注释,以便更好地理解每个选项的作用。

一旦所有的东西都设置好了,你就可以运行所有的测试了:

bundle exec rspec

您可以在 https://kolosek.com/rails-rspec-setup上阅读有关推荐 spec _ helper 和 ails _ helper 配置的更多信息。

使用 rails CLI 没有原生的方法可以做到这一点。在没有 test-unit的情况下生成一个新项目:

rails new rails-app --skip-test

然后按照 rspec的说明将其集成到新的 Rails 应用程序中。