我正在为我的一个项目使用minitest,并且我似乎无法让Rake TestTask实际运行这些文件。
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
时,我得到以下输出:
projects@webdev-local:/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和ruby 1.9.3
所以,你可能需要检查两件事:
1)确保你正在使用minitest-rails
gem
它增加了很多我们需要的测试运行器任务。
https://github.com/blowmage/minitest-rails2) minitest_helper.rb
文件的内容(a la 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 ...