使用Arrays或Generics时,TestCase在NUnit中显示名称

Mat*_*abe 5 c# arrays generics nunit testcase

我试图TestCaseSource在NUnit中使用其中一个参数是一个数组来运行多个测试

    private static readonly object[] ReturnChopCases =
    {
        new TestCaseData(3, new List<int> {}).Returns(-1),
        new TestCaseData(3, new List<int> {1}).Returns(1),
        new TestCaseData(1, new List<int> {1,2}).Returns(1),
    };

    [TestCaseSource("ReturnChopCases")]
    public int test_chop(int SearchNumber, int[] SearchArray)
    {
        return Chopper.Chop(3, SearchArray);
    }
Run Code Online (Sandbox Code Playgroud)

问题是测试运行器中显示的名称(我使用的是NUnit测试适配器)非常无用,它们都显示为test_chop(0,System.Int32[])或者如果使用的Listtest_chop(0,System.Collections.Generic.List`1[System.Int32]).

如何在测试运行中保留一个相当可读的测试并为测试提供有用的测试名称?我尝试过一些东西,但我仍然得到上面提到的名字.

Jar*_*Par 3

使用SetName函数命名测试

new TestCaseData(3, new List<int> {}).Returns(-1).SetName("test_chop_List<int>"),
Run Code Online (Sandbox Code Playgroud)