拥有此单元测试代码段,取自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"跑了三次。
我想根据代码中定义的一些值以编程方式更改/设置测试名称。
有没有人知道如何做到这一点?
答案 0 :(得分:4)
在您发布的链接中,有一个片段,您可以通过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");
}
}