c# - 使用数组或泛型时 TestCase 在 NUnit 中的显示名称

标签 c# arrays generics nunit testcase

我正在尝试在 NUnit 中使用 TestCaseSource 运行多个测试,其中一个参数是一个数组

    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);
    }

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

如何保留可读性强的测试并为测试运行程序中的测试提供有用的测试名称?我已经尝试了一些方法,但我仍然得到上面提到的名字。

最佳答案

使用SetName函数为测试命名

new TestCaseData(3, new List<int> {}).Returns(-1).SetName("test_chop_List<int>"),

关于c# - 使用数组或泛型时 TestCase 在 NUnit 中的显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26933741/

相关文章:

cArray[][] 指针数组转换

scala - scala 中泛型抽象类型的模式匹配

c# - 在生成的 IL 代码中,缺少一些行。 in between 行执行什么任务?

c#检查程序是否在启动时运行

c# - 服务栈序列化

c# - 无法将 View 添加到 edmx

PHP - RecursiveArrayIterator 在除最后一级之外的所有级别上递归

java初学者: print two dimensional array element in a String

c# - 为什么我不能将 List<T> 传递给通用构造函数参数,尽管所有约束都已满足?

java - 将 lambda 转换为 Function<T, R> 失败