2013-04-06 63 views
2

嘗試使用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任務,它只能在models目錄下運行測試(test/models /)。

我這個現有TestTask發揮各地通過簡單地改變

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

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

,但它似乎仍然運行所有測試......不只是模型。奇怪?

問題

我該如何做到這一點?如何命名第二個只能運行模型的TestTask,以及如何告訴rake運行該測試而不是默認測試?

+0

我也試圖運行「紅寶石-Itest測試/模型/ *」,但只運行該目錄中的第一個測試。 ?? – hellion 2013-04-06 07:04:37

回答

3

您要查找的模式是「test/models/**/* _ test.rb」。 「**」也將匹配子目錄。

如果您正在使用minitest-rails,那麼您將爲您添加許多任務。要運行全過程試驗運行:

rake minitest:models 

要查看所有耙任務爲您創建,運行:

rake -T 
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!