有这个单元测试代码片段,取自 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 }
};
它正确地运行了 3 次测试,但在输出中我得到了相同的测试方法名称,“DivideTest”运行了 3 次。
我想根据代码中定义的一些值以编程方式更改/设置测试的名称。
有没有人知道如何做到这一点?
最佳答案
在您发布的链接中,有一个片段,您可以在其中通过通过 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/