尝试使用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 /)中运行测试。
我只需更改
即可使用现有的TestTaskt.pattern = "test/**/*_test.rb"
到
t.pattern = "test/models/*_test.rb"
但是,它似乎仍在运行所有测试...而不仅仅是模型。奇怪?
问题
我怎样才能做到这一点?如何命名第二个仅运行模型的TestTask,如何告诉rake运行该测试而不是默认值:test?
答案 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!