gpt4 book ai didi

c# - NUnit 以编程方式设置测试名称

转载 作者:行者123 更新时间:2023-11-30 15:29:40 25 4
gpt4 key购买 nike

有这个单元测试代码片段,取自NUnit TestCaseSource

[Test, TestCaseSource("DivideCases")]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}

static object[] DivideCases =
{
new object[] { 12, 3, 4 },
new object[] { 12, 2, 6 },
new object[] { 12, 4, 3 }
};

它正确地运行了三次测试,但在输出中我得到了相同的测试方法名称,“DivideTest”运行了三次。

我想根据代码中定义的一些值以编程方式更改/设置测试的名称。

有人知道怎么做吗?

最佳答案

在您发布的链接中,有一个片段,您可以在其中通过 TestCaseSource 属性链接的方法显式创建 TestCaseData 对象。当您这样做时,您可以控制设置每个单独测试用例的名称。请参阅下面的最后一个 TestCaseData 实例。

 public static IEnumerable TestCases
{
get
{
yield return new TestCaseData( 12, 3 ).Returns( 4 );
yield return new TestCaseData( 12, 2 ).Returns( 6 );
yield return new TestCaseData( 12, 4 ).Returns( 3 );
yield return new TestCaseData( 0, 0 )
.Throws(typeof(DivideByZeroException))
.SetName("DivideByZero")
.SetDescription("An exception is expected");
}
}

关于c# - NUnit 以编程方式设置测试名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23332726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com