运行 使用特定数据进行 nunit 测试
Running nunit test with specific data
我有一个接受测试数据的测试。使用 nunit console app 运行 测试时,有没有办法指定要使用的数据?
例如:
[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
它将 运行 两次。
实现此目的的一种方法是返回一个 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
就运行...
nunit3-console.exe Tests.dll --test ATest("blah2 blah2", 2)
或
nunit3-console.exe Tests.dll -- 其中 "test~=blah2"
如果该字符串对于您的所有测试都是唯一的。
请注意,第一个可能需要对引号进行一些转义,具体取决于您的操作系统。
我有一个接受测试数据的测试。使用 nunit console app 运行 测试时,有没有办法指定要使用的数据?
例如:
[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
它将 运行 两次。
实现此目的的一种方法是返回一个 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
就运行...
nunit3-console.exe Tests.dll --test ATest("blah2 blah2", 2)
或
nunit3-console.exe Tests.dll -- 其中 "test~=blah2"
如果该字符串对于您的所有测试都是唯一的。
请注意,第一个可能需要对引号进行一些转义,具体取决于您的操作系统。