这是我在 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 窗格中我可以看到每个测试用例在结果中得到自己的响应。
我有第二个测试用例,如下所示:
[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 );
}
当我运行它时,我看到这个:
一个或多个子测试有错误异常没有堆栈跟踪
公共无效MyClass_MyOtherMethod(5,3,System.Int64 [])失败
不同之处在于,与我的其他测试相比,它在测试列表上将每个测试用例绘制为单独的复选框,而这个测试用例不会显示,并且直到我在调试器中运行它之后我才知道出了什么问题以及在哪里出了问题。我有点担心这个测试在构建机器上的表现。有谁知道发生了什么事以及为什么?