8

私は MiniTest スイートを持っています。私はMinitest::Unit::TestCase仕様ではなく基本を使用しています。サブクラスでsetupteardownメソッドが定義されています。TestCase次のようなテストファイルを実行すると、完全に機能しますruby test/whatever_test.rb。しかし、私が実行するとrake test、呼び出されません。私のRakefileの関連部分は次のとおりです。setupteardown

require 'rake/testtask'

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

setupが使用されているときにandteardownが実行されないのはなぜRake::TestTaskですか?

ここにテスト ケース コードを貼り付けますが、かなりの数があります。あなたが見たい特定のセクションがあれば、私は確かにそれのいくつかのサブセットに貼り付けます.

Ruby 1.9.3-p194 で Minitest 4.3.2 を実行しています。

4

2 に答える 2

20

setup問題は、別のテスト ケースがandteardownメソッドを上書きしていたことです。誤って 2 つのテスト ケースに同じクラス名を付けてしまったため、上書きが発生しました。当然のことながら、1 つのテスト ケースを実行したときにはこのエラーは発生しませんでした。これは、Rake を使用した場合の動作の違いを説明しています。

于 2012-11-30T20:03:43.743 に答える
1

私の場合、ソケット通信のテストを書いていて、 という名前のヘルパー メソッドを追加していましたsend。MiniTest はsendティアダウン メソッドを呼び出すために内部的に使用するため、代わりにメソッド ディスパッチではなく独自のメソッドを呼び出していましたsend

于 2015-08-01T05:20:01.107 に答える