NUnit在包含数组的情况下无法识别TestCase。

10 浏览
0 Comments

NUnit在包含数组的情况下无法识别TestCase。

我在使用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都有自己的结果。

我有一个第二个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 );
}

当我运行它时,我看到了这个:

一个或多个子测试发生错误,Exception没有堆栈跟踪
public void MyClass_MyOtherMethod(5,3,System.Int64[])失败

区别在于,对于其他测试,它会将每个TestCase作为单独的复选框显示在测试列表中,而这个测试则不会显示,并且在运行调试器之前我无法了解出了什么问题以及在哪里出了问题。我对这个测试在构建机器上的行为有些担忧。有人知道发生了什么以及为什么吗?

0