我正在尝试使用minitest创建一个新的Rails 4.1.4应用程序(Ruby 2.1.2)。按照下面显示的说明操作后,当我运行rake -T
时,它不显示任何最小的rake任务。
我在这里缺少什么?
1)添加到Gemfile
group :test do
gem 'minitest-rails'
gem 'minitest-rails-capybara'
gem 'minitest-colorize'
gem 'minitest-focus'
end
2)bundle
3)添加到test/test_helper.rb
(require "rails/test_help"
之后)
require 'minitest/rails'
require 'minitest/rails/capybara'
require 'minitest/focus'
require 'minitest/colorize'
4)从require 'rails/all'
config/application.rb
5)添加到config/application.rb
require "active_record/railtie"
require "action_controller/railtie"
require 'rake/testtask'
require "action_mailer/railtie"
require "sprockets/railtie"
require "minitest/rails/railtie"
然后我运行rake -T
,然后返回一个rake任务列表,其中不包含任何最小的任务。
答案 0 :(得分:2)
由于2.0 minitest-rails不添加minitest
rake任务。使用默认的rails test
rake任务。请参阅README中有关运行测试的部分。
此外,如果您在config/application.rb
中加入了minitest-rails Railtie,则不应将依赖项放在:test
中的Gemfile
组中。
答案 1 :(得分:0)
我对你的问题有点困惑。您是否尝试添加自定义minitest任务,或者只是添加rake test等常规任务? Rails 4应该已经将minitest作为ActiveSupport的依赖项。在Gemfile.lock文件中,检查以确保minitest是否在activesupport下。我看起来像这样:
activesupport (4.1.0)
i18n (~> 0.6, >= 0.6.9)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
如果没有,请尝试运行bundle install以查看是否已安装所有依赖项。
最后,(尽管你可能知道这一点),任务不会说minitest。它们将像'rake test'一样进行'测试',所以如果这就是你所困惑的(基于这个问题,我无法真正说出来),那么只需确保rake测试有效,你就可以开始了。
答案 2 :(得分:0)
也许既然你将gem 'minitest-rails'
放在测试组中,并且默认设置为RAILS_ENV=development
,则需要执行以下操作:
RAILS_ENV=test bundle exec rake -T
或者只是从测试组中取出gem 'minitest-rails'
,因为application.rb中的行require "minitest/rails/railtie"
总是会尝试加载它。