对于TestCase,如何设置属性?

时间:2019-03-15 16:10:41

标签: nunit-3.0

在NUnit中,我可以执行以下操作,然后从TestContext中检索ID

[Test]
[Property("ID", "HelloWorld")]
[Category("ABC")]

// TestContext.CurrentContext.Test.Properties.Get("ID").ToString() 
// --> HelloWorld

下面似乎不起作用(当您在TestContext中查找ID时,它返回null)

[Category("ABCD")]
[TestCase("AZ", 1),Property("ID","a")]

相同
[Category("ABCD")]
[TestCase("AZ", 1)]
[Property("ID","a")]

这是否有可能,还是我太胖了,看不到正确的答案?

2 个答案:

答案 0 :(得分:1)

有趣的问题。我做了一个测试项目,您说对了。没用 在NUnits GitHub上进行研究并发现了一个开放的bug,该bug大约存在三年:https://github.com/nunit/nunit/issues/1358

因此,当前的NUnit实现不允许成功地将Property属性应用于TestCase。

答案 1 :(得分:0)

似乎还有另一种说法。这是我以前从未见过的。我在这里https://github.com/nunit/docs/wiki/TestCaseData

找到了说明
[Test
public class ObjectPattern
{
    [TestCaseSource(typeof(ADataClass), "TestCases")]
    public int DivideTest(int n, int d)
    {
            ;
    }
}

public class ADataClass
{
    public static IEnumerable TestCases
    {
        get
        {
            yield return new TestCaseData(12, 3).setProperty("ID",4);
            yield return new TestCaseData(12, 2).setProperty("ID",4);
        }
    }  
}