【发布时间】:2013-07-29 08:29:39
【问题描述】:
这是我在使用 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 作为测试列表上的一个单独复选框绘制出来,而这个没有显示出来,并且我没有详细信息,直到我在调试器中运行它以了解出现了什么问题和在哪里。我有点担心这个测试在构建机器上的表现。有谁知道发生了什么以及为什么?
【问题讨论】:
-
也可能是不支持的 ReSharper 测试运行器。
-
好点,将检查 NUnit 控制台。
-
您使用哪些版本的 NUnit 和 Resharper?我记得在其中一个的较晚版本中修复了一些问题。
-
对了,你有没有试过传递这个标有
params修饰符的数组? -
NUnit 2.6.2 与 ReSharper 7.1 - 可能我需要向 Jetbrains 提出这个问题。 params 修饰符有什么作用?
标签: c# unit-testing nunit testcase