NUnitの、TestDriven.Net:一部のテストクラスとの重複検査結果
-
21-09-2019 - |
質問
私はちょうど私が私がなってきた必要があることを実行するテスト数が2倍になっていたことを発見しました。テストは壊れ、私は2つの同一のテストの失敗を得たときにそれを発見しました。同じテスト、同じすべてのもの。私はかなり混乱しますが、部分クラスだった特定のテストクラスにそれを絞り込むことに成功しました。
それは部分クラスだった理由は、私はちょうどそれがもう少しきれいにするために、二つにテストクラスを分割していたことでした。テスト対象のクラスはテストの長い範囲を必要な特定のメソッドを持っていたし、私は別のファイルのものを持っているきれいだろうと思いました。あったので、1つのまたは2つのヘルパー・メソッドは、私は両方のファイルがまだこれらのメソッドへのアクセスを持っていたので、私はちょうどクラスは、部分的にすることができ考え出し使用します。
はテストフレームワークは、NUnitのであり、試験はTestDriven.Netを使用して実行しました。蘭単一のテストメソッド内からの両方のテストは、クラス(テストの数が2倍渡しました)と全体のテストプロジェクトに、(1の代わりに渡された2つのテストを報告し)ます。
(別のヘルパークラス以降何かにそれらを動かすかもしれない)のクラスは、部分的ではない作りとちょうどそれらの小さなヘルパーメソッドを複製することによって問題を解決するために管理されます。
さて...この出来事はなぜ地球上のですか?私は部分的なクラスは、単一のクラスにコンパイルされたと思いましたか?これは、一般的には、部分的なクラスの問題で、NUnitの、Test-Driven.netか何か全く違うのですか?
解決
あなたはおそらく部分クラスの両方のファイルで[TestFixture]
属性を置きます。これはTestFixture
はILのクラス定義で二回放出されることになりますとNUnitのは二回同じテストコードを実行します。あなただけのあなたの部分クラス用のファイルのいずれかに[TestFixture]
を追加する必要があります。