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



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

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

下面应该可以工作:

命令行:

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而不是test-unit。

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

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

bundle exec rspec

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

我是一个新的开发人员,我刚刚做了一个rails标志(-rspec)来解决OP的问题。它去掉了Test::Unit,并用bash脚本插入rails-rspec gem。可以通过修改脚本来帮助linux开发人员自动添加rubyracer gem或创建自定义标志和gem集。(可能具体到gem行并删除注释)

要点在这里&&我希望这能帮助到别人。https://gist.github.com/MTen/8310116

rails命令行中没有本机方法来完成此操作。生成一个没有test-unit的新项目:

rails new rails-app --skip-test

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

最新更新