7

取得すべきテストの実行回数が2倍になっていることに気づきました。テストが失敗し、2つの同じテストが失敗したときにそれを発見しました。同じテスト、同じすべて。かなり混乱しましたが、部分的なクラスである特定のテストクラスに絞り込むことができました。

部分クラスだったのは、テストクラスをもう少しきれいにするために2つに分割したためです。テスト対象のクラスには、広範囲のテストを必要とする特定のメソッドがあり、それらを別のファイルに入れる方がクリーンだと思いました。しかし、1つまたは2つのヘルパーメソッドが使用されていたので、クラスを部分的にするだけで、両方のファイルがそれらのメソッドにアクセスできるようになると思いました。

テストフレームワークはNUnitであり、テストはTestDriven.Netを使用して実行されました。単一のテストメソッド内(1つではなく2つのテストに合格したと報告)、クラス(合格したテストの数が2倍になった)、およびテストプロジェクト全体の両方からテストを実行しました。

クラスを部分的にせず、それらの小さなヘルパーメソッドを複製するだけで問題を修正できました(後で別のヘルパークラスなどに移動する可能性があります)。

さて...一体なぜこれが起こっているのですか?部分的なクラスは単一のクラスにコンパイルされていると思いましたか?これは、一般的な部分クラス、NUnit、Test-Driven.net、またはまったく異なるものの問題ですか?

4

1 に答える 1

3

おそらく[TestFixture]、部分クラスの両方のファイルに属性を配置します。これによりTestFixture、ILクラス定義で2回発行され、NUnitは同じテストコードを2回実行します。[TestFixture]部分クラスのファイルの1つだけを追加する必要があります。

于 2010-01-19T14:16:36.853 に答える