我有一个包含多个测试类的文件(使用minitest)。我在文件顶部有require 'minitest/autorun'
,当我直接调用文件(ruby my_tests.rb
)时,所有测试都正确运行。
到目前为止,这么好。但是,现在我尝试通过rake
运行我的测试。
require "rake/testtask"
task :default => [:test]
Rake::TestTask.new do |t|
t.libs << Dir.pwd + "/lib/examples"
t.test_files = FileList['test/test*.rb']
end
调用rake
显示test/my_test.rb
被调用,但类中没有测试运行(0测试,0断言等)。我确实得到了这些警告:
...gems/minitest-5.8.0/lib/minitest/assertions.rb:17: warning: already initialized constant MiniTest::Assertions::UNDEFINED
...ruby/2.1.0/lib/ruby/2.1.0/minitest/unit.rb:80: warning: previous definition of UNDEFINED was here
如何在rake中成功运行我的测试?我不使用rails。
编辑:这是我的测试文件的顶部:
require 'minitest/spec'
require 'minitest/autorun'
require 'minitest/reporters'
reporter_options = { color: true }
Minitest::Reporters.use![Minitest::Reporters::DefaultReporter.new(reporter_options)]
class Test_PowerSpecInputs < Minitest::Test
def setup
@mc = TestClass.new()
end
def test_does_lib_have_constant
# my test code
end
end
答案 0 :(得分:1)
尝试将您的Rakefile更改为此。
require "bundler/gem_tasks"
require "rake/testtask"
Rake::TestTask.new(:test) do |t|
t.libs << "test"
t.libs << "lib"
t.test_files = FileList['test/**/*_test.rb']
end
task :default => :test
答案 1 :(得分:0)
jphager2让我思考工具版本,事实证明我的rake版本相当陈旧。更新到11.x就可以了。