我有一个接受测试数据的测试。使用nunit控制台应用程序运行测试时,有没有办法可以指定要使用的数据?
例如:
[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)
public class TestData : IEnumerable
{
public IEnumerator GetEnumerator()
{
yield return new object[] { "blah1 blah1", 1};
yield return new object[] { "blah2 blah2", 2};
}
}
我希望能够仅使用测试数据运行ATest [" blah2 blah2",2]。如果我运行如下:
nunit3-console.exe Tests.dll --test=ATest --workers=1 --noresult
它将运行两次。
答案 0 :(得分:0)
执行此操作的一种方法是返回TestCaseData
对象。
这样的事情:(未经测试,因此语法可能有点偏差!)
[Test, TestCaseSource(typeof(TestData))]
public void ATest(string param1, int param2)
public IEnumerator GetEnumerator()
{
yield return new TestCaseData("blah1 blah1", 1).SetName("FirstTest");
yield return new TestCaseData("blah2 blah2", 2).SetName("SecondTest");
}
要运行第一个测试,您将使用命令行:
nunit3-console.exe Tests.dll --test=YourNameSpace.ATest.FirstTest --workers=1 --noresult
根据您的操作,设置类别可能比名称更合适。文档页面显示了可用的内容:https://github.com/nunit/docs/wiki/TestCaseData
答案 1 :(得分:0)
跑步......
nunit3-console.exe Tests.dll - 测试ATest(“blah2 blah2”,2)
或
nunit3-console.exe Tests.dll - 其中“test〜= blah2”
如果该字符串对您的所有测试都是唯一的。
请注意,第一个可能需要一些转义报价,具体取决于您的操作系统。