これは非常に単純ですが、NUnit で遭遇した厄介な動作です。
私はこのようないくつかのテストを持っています:
[Test]
[TestCase( 1, 2, "hello" )]
[TestCase( 3, 5, "goodbye" )]
public void MyClass_MyMethod( int a, int b, string c )
{
Assert.IsTrue( a < b );
}
これは正常に機能し、ReSharper NUnit ペインで、各 TestCase が結果で独自の応答を取得していることを確認できます。
次のような 2 番目の TestCase があります。
[Test]
[TestCase( 1, 2, new long[] { 100, 200 })]
[TestCase( 5, 3, new long[] { 300, 500 })]
public void MyClass_MyOtherMethod( long a, long b, long[] bunchOfNumbers )
{
Assert.IsTrue( a < b );
}
実行すると、次のように表示されます。
1 つ以上の子テストにエラーがありました例外にスタックトレースがありません
public void MyClass_MyOtherMethod(5,3,System.Int64[]) が失敗しました
違いは、私の他のテストでは、各 TestCase がテスト リストの個別のチェックボックスとして描画されるのに対し、これは表示されず、デバッガーで実行するまで詳細がわかりません。このテストがビルド マシンでどのように動作するか、少し心配です。誰が何が起こっているのか、そしてその理由を知っていますか?