2013-01-16 32 views
3

我正在爲我的一個項目使用minitest,而我似乎無法得到Rake TestTask來真正運行這些文件。Rake :: TestTask沒有運行minitest文件

require 'rake' 
require 'rake/testtask' 

task :mytest do 
    Rake::TestTask.new do |t| 
    t.test_files = Dir.glob('test/model/*_test.rb') 
    t.verbose = true 
    puts t.inspect 
    puts '-------------------------------------' 
    end 
end 

當我運行這個任務rake mytest,我得到下面的輸出:

[email protected]:/home/projects/framework# rake mytest 
#<Rake::TestTask:0x00000001775050 @name=:test, @libs=["lib"], @pattern=nil, 
@options=nil, @test_files=["test/model/page_model_test.rb", 
"test/model/widget_model_test.rb"], @verbose=true, @warning=false, @loader=:rake, 
@ruby_opts=[]> 
------------------------------------- 

正如你所看到的,任務找到該文件,但它從來沒有真正運行它們。我怎樣才能讓它運行這些文件?

使用Rails 3.2.8和1.9.3的紅寶石

回答

1

因此,兩件事情你可能要檢查:

1)確保您使用的minitest-rails寶石

它增加了一個很多我們想要和需要的測試跑步者任務。

https://github.com/blowmage/minitest-rails

2)您minitest_helper.rb文件的內容(一拉spec_helper.rb

你應該有一些那種你在所有的測試需要幫手的文件。確保它看起來是這樣的:

ENV["RAILS_ENV"] = "test" 
require File.expand_path('../../config/environment', __FILE__) 

require "minitest/autorun" 
require "minitest/rails" 

class ActiveSupport::TestCase 
    fixtures :all 
end 

現在你有設置,您可以按以下運行所有​​測試:

bundle exec rake test 
bundle exec rake minitest # alias for test 
bundle exec rake minitest:models 

# ... etc ... 
+0

感謝您的反饋!它讓我回去看看我的gemfile,因爲我實際上沒有定義這些rake任務('minitest'和'minitest:models')。 我的問題實際上最終成了相互衝突的寶石,所以在收拾好之後,一切似乎都很順利。 再次感謝! –

+0

很高興你明白了。迷你測試軌道實際上爲您動態添加了這些任務,因此您可以在任何項目中使用它們。 – Swift

相關問題