请考虑以下代码:
private static object[] testStrings =
{
new object[] { "string1" },
new object[] { "string2" },
new object[] { "string3" },
new object[] { "string4" }
};
[Test, TestCaseSource("testStrings")]
public void CanParseString(string stringToTest)
{
//...
}
这最终会大量污染测试结果,如下图所示。现在想象一下,当有几十个测试时,每个测试都有几组测试数据。
有没有办法强制NUnit / Visual Studio只显示运行的测试,而不是每个单独的测试数据都传递给所述测试?
或者我可能错误地设置了TestCaseSource,在这种情况下,我很高兴知道我哪里出错了。
答案 0 :(得分:2)
我认为你不能,而@adrianbanks在评论中暗示你可能不应该这样做。
来自Parameterized tests上的NUnit文档:
多组参数会导致创建多个测试。
因为TestCaseSource
参数(实际上TestCase
)向测试运行器公开了多个测试,所以不能让Visual Studio将这些测试重组为单个测试。