我已安装 test-unit
和 rspec
(连同 -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。可以修改该脚本以通过自动添加 rubyracer gem 或创建自定义标志和 gemset 来帮助 linux 开发人员。 (也许专门去那个 gem 行并删除评论)
这是要点&&我希望这可以帮助那里的人。 https://gist.github.com/MTen/8310116
rails
CLI 没有本地方法可以执行此操作。生成一个没有 test-unit
的新项目:
rails new rails-app --skip-test
然后按照 rspec
说明将其集成到新的 Rails 应用程序中。
不定期副业成功案例分享
generator.rb
初始化程序,这由 RSpec 的 railtie 处理。您只需要Gemfile
的development
组中的rspec-rails
,这足以让生成器需要它。您也不需要使用-T
生成应用程序,您可以删除test
目录,它会起作用。application.rb
中注释掉"rails/test_unit/railtie"
rspec-rails
gem 时,务必将其置于测试和开发中,否则即使您按照上述步骤,生成器也不会使用 RSpec。