在轨道4中没有MiniTest rake任务

时间:2014-07-17 13:45:27

标签: ruby-on-rails ruby ruby-on-rails-4 rake minitest

我正在尝试使用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.rbrequire "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任务列表,其中不包含任何最小的任务。

3 个答案:

答案 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"总是会尝试加载它。