这是我在使用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 );
}
运行时出现以下情况:
一个或多个子测试出现错误,异常没有堆栈跟踪
public void MyClass_MyOtherMethod(5,3,System.Int64[]) 失败
与其他测试不同的是,我的其他测试在测试列表中将每个TestCase绘制为单独的复选框,而此测试不会显示出来,直到我在调试器中运行它才能知道出了什么问题和在哪里。我有点担心这个测试在构建机器上的行为。有谁知道发生了什么以及为什么吗?
params
修饰符来传递此数组? - Mikhail Brinchuk