Ruby on Rails:从test_unit切换到rspec

我正在通过一个build议使用rspec的教程,但是我已经经历了很多默认的rails安装。 我真的不想重做安装。 无论如何,当我跑步

 $ rails g integration_test named 

我明白了

  invoke test_unit create test/integration/named_test.rb 

当我运行bundle ,列出了各种rspecgem,但test_unit不是。 本教程似乎有轨道调用rspec而不是test_unit没有做任何额外的事情。 如何获得使用rspec和集成testing生成器命令的rails?

在你的config/application.rb文件中:

 config.generators do |g| g.test_framework :rspec end 

现在当你运行你的生成器时,你会得到rspectesting文件。 记得重新启动你的服务器。 有关发电机的更多信息,请参阅

导轨中的RailsCasts#216生成器3

如果你真的想使用integration_test生成器:

 rails g integration_test named --integration-tool=rspec 

使用Rails 3.2.8rspec-rails 2.11.4 ,我发现我的问题是在我的Gemfile中。 我在:test组中使用了rspec-rails ,但是没有使用:development组。 由于Rails默认以开发模式运行(包括运行生成时),因此rspec-rails必须位于:development组中,以便挂钩到生成器。 一旦我有了,一切正常。

至于Rails 3.2.12,请按顺序执行这些步骤

 rails new app_name --skip-test-unit 

将rspec-rails添加到开发,testing组中的Gemfile

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

运行bundle install

运行发生器

 rails generate rspec:install 

…并清理你现有的testing目录:

 rm -Rf $RAILS_ROOT/test 

要使用RSpec而不是默认的Test :: Unit,请先运行以下命令

 $ rails generate rspec:install 

该命令将创build以下文件夹/文件

 create .rspec create spec create spec/spec_helper.rb 

现在,无论何时使用generator来生成控制器,模型等rails组件,都会创build相应的RSpecs。

今天遇到这个问题。 application.rb必须更新为:

 config.generators do |g| g.test_framework :rspec g.integration_tool :rspec end 

1.创build新的rails应用程序时,跳过TestUnit框架,否则会生成test_unit目录。

$rails new your_app --skip-test-unit

2.将以下代码添加到your_app / config / application.rb文件中:

config.generators do |g| g.test_framework :rspec end

3.将以下代码添加到your_app的Gemfile中:

group :test, :development do gem 'rspec-rails' end保存,然后运行bundle install来安装rspec gem

4.初始化spec /目录

rails generate rspec:install

更多的细节请参考: https : //github.com/rspec/rspec-rails

我发现我做了一些其他方法的工作仍然是检查我的拼写….我有什么@tovodeverett分组rspec-rails:开发和:testing,但拼写错误的发展。 这解决了我的问题,但我正在生成与test_unit而不是rspec的testing。

在configuration/应用程序中,添加此代码

  config.generators do |g| g.test_framework :rspec g.integration_tool :rspec end 
 $ rails g model Account invoke active_record create db/migrate/20140205052617_create_accounts.rb create app/models/account.rb invoke test_unit create test/models/account_test.rb create test/fixtures/accounts.yml $ rails d model Account 

运行脚本/ rails生成rspec:install不会将rspec添加为默认框架。 在config / application.rb中添加以下命令,然后运行

 config.generators do |g| g.test_framework :rspec end $ rails g model Account invoke active_record create db/migrate/20140205052957_create_accounts.rb create app/models/account.rb invoke rspec create spec/models/account_spec.rb $ rails -v Rails 4.0.2