通过Rake测试运行时,不会调用最小的#setup和#teardown

rlk*_*024 8 ruby testing minitest

我有一个MiniTest套件.我使用的是基本的Minitest::Unit::TestCase,而不是规格.我setupteardown我的定义方法TestCase的子类.当我运行这样的测试文件时,它们完美地工作:ruby test/whatever_test.rb.但是当我跑步rake test,setupteardown没有被召唤.我的Rakefile的相关部分是:

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.test_files = FileList['test/*_test.rb']
  t.verbose = true
end
Run Code Online (Sandbox Code Playgroud)

为什么不setupteardown被运行时Rake::TestTask使用?

我将测试用例代码粘贴到这里,但是它有很多.如果你想看到一个特定的部分,我肯定会粘贴它的某个子集.

我在Ruby 1.9.3-p194上运行Minitest 4.3.2.

rlk*_*024 18

问题是另一个测试用例是覆盖setupteardown方法.我不小心给了两个相同类名的测试用例,这就是覆盖发生的原因.当然,当我运行单个测试用例时,这个错误没有发生,这解释了使用Rake时的行为差异.