Ruby on Rails:从test_unit切换到rspec
我正在通过一个build议使用rspec
的教程,但是我已经经历了很多默认的rails安装。 我真的不想重做安装。 无论如何,当我跑步
$ rails g integration_test named
我明白了
invoke test_unit create test/integration/named_test.rb
当我运行bundle
,列出了各种rspec
gem,但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.8和rspec-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