使用rake任务运行所有模型测试

时间:2013-04-06 06:53:52

标签: ruby-on-rails-3 rake rake-task minitest

尝试使用rake任务仅运行test / models目录中的测试。使用minitest。

我有一个rake任务,将运行所有测试

  require "rake/testtask"

  Rake::TestTask.new(:test => "db:test:prepare") do |t| 
    t.libs << "test"
    t.pattern = "test/**/*_test.rb"
 end

 task :default => :test

然后,运行'rake'命中默认值并运行所有测试。我想写第二个rake任务,它只在models目录(test / models /)中运行测试。

我只需更改

即可使用现有的TestTask
t.pattern = "test/**/*_test.rb"

t.pattern = "test/models/*_test.rb"

但是,它似乎仍在运行所有测试...而不仅仅是模型。奇怪?

问题

我怎样才能做到这一点?如何命名第二个仅运行模型的TestTask,如何告诉rake运行该测试而不是默认值:test?

2 个答案:

答案 0 :(得分:3)

您正在寻找的模式是“test / models / ** / * _ test.rb”。 “**”也会匹配子目录。

如果您使用minitest-rails,那么您将为您添加许多任务。要运行所有模型测试运行:

rake minitest:models

要查看为您创建的所有佣金任务,请运行:

rake -T

答案 1 :(得分:0)

像往常一样,答案很简单。刚刚挖了一下。确保application.rb中有以下内容(在模块内)。

config.generators do |g|
    g.fixture_replacement :factory_girl # if your using factory_girl
    g.test_framework :mini_test, :spec => true, :fixture => false
end 

然后您可以访问内置命令的minitests。我正在寻找的那个很简单

rake minitest:models

Booya!