耙子没有用minitest进行任何测试

时间:2016-07-12 23:49:54

标签: ruby rake rake-task

我有一个包含多个测试类的文件(使用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

2 个答案:

答案 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就可以了。