8

我有一个 MiniTest 套件。我使用的是基本的Minitest::Unit::TestCase,而不是规格。我在我的子类中定义了setupteardown方法TestCase。当我像这样运行测试文件时,它们可以完美运行:ruby test/whatever_test.rb. 但是当我运行时rake testsetupteardown没有被调用。我的 Rakefile 的相关部分是:

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.test_files = FileList['test/*_test.rb']
  t.verbose = true
end

为什么setupandteardown不使用时运行Rake::TestTask

我会把测试用例代码粘贴到这里,但是有很多。如果您想查看特定部分,我肯定会粘贴其中的一些子集。

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

4

2 回答 2

20

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

于 2012-11-30T20:03:43.743 回答
1

就我而言,我正在为套接字通信编写测试,并添加了一个名为send. 由于 MiniTestsend在内部使用来调用拆解方法,所以它是调用我自己的send而不是方法调度。

于 2015-08-01T05:20:01.107 回答