如何阻止NUnit TestCaseSource多次列出相同的测试?

时间:2016-01-17 19:57:02

标签: c# .net visual-studio unit-testing nunit

请考虑以下代码:

    private static object[] testStrings =
    {
        new object[] { "string1" },
        new object[] { "string2" },
        new object[] { "string3" },
        new object[] { "string4" }
    };

    [Test, TestCaseSource("testStrings")]
    public void CanParseString(string stringToTest)
    {
        //...
    }

这最终会大量污染测试结果,如下图所示。现在想象一下,当有几十个测试时,每个测试都有几组测试数据。

enter image description here

有没有办法强制NUnit / Visual Studio只显示运行的测试,而不是每个单独的测试数据都传递给所述测试?

或者我可能错误地设置了TestCaseSource,在这种情况下,我很高兴知道我哪里出错了。

1 个答案:

答案 0 :(得分:2)

我认为你不能,而@adrianbanks在评论中暗示你可能不应该这样做。

来自Parameterized tests上的NUnit文档:

  

多组参数会导致创建多个测试

因为TestCaseSource参数(实际上TestCase)向测试运行器公开了多个测试,所以不能让Visual Studio将这些测试重组为单个测试。