C# 在不同条件下重复一组测试?
我想为不同的条件重复一组单元测试,使用相同的设置夹具(C# 在不同条件下重复一组测试?,c#,unit-testing,nunit,C#,Unit Testing,Nunit,我想为不同的条件重复一组单元测试,使用相同的设置夹具(SetUpFixture) i、 e.一组测试使用同一文件作为输入。正在安装夹具中设置文件。我想重复为不同的输入文件使用设置夹具的测试 可以使用TextFixture,但不能使用SetupFixture。有解决方法吗?您可以生成几个输入文件,并将文件名用作测试的参数: [TestFixture] public class MyClass { [TestFixtureSetUp] //[OneTimeSetUp] for NUn
SetUpFixture
)
i、 e.一组测试使用同一文件作为输入。正在安装夹具中设置文件。我想重复为不同的输入文件使用设置夹具的测试
可以使用
TextFixture
,但不能使用SetupFixture
。有解决方法吗?您可以生成几个输入文件,并将文件名用作测试的参数:
[TestFixture]
public class MyClass
{
[TestFixtureSetUp]
//[OneTimeSetUp] for NUnit 3
public void FixtureSetUp()
{
PrepareFile("a.txt");
PrepareFile("b.txt");
PrepareFile("c.txt");
}
[TestCase("a.txt")]
[TestCase("b.txt")]
[TestCase("c.txt")]
public void Test(string fileName)
{
var result = YourTestCode(fileName);
Assert.True(result); //whatever you need
}
}
您可以使用来构造包含每个数据文件的测试类。安东的回答
[TestFixture("a.txt")]
[TestFixture("b.txt")]
[TestFixture("c.txt")]
public class MyClass
{
string _filename;
public MyClass(string filename)
{
_filename = filename;
}
[TestFixtureSetUp]
//[OneTimeSetUp] for NUnit 3
public void FixtureSetUp()
{
PrepareFile(_filename);
}
[Test()]
public void Test()
{
var result = YourTestCode();
Assert.True(result); //whatever you need
}
}
如果您想要一种更为动态的方式为TestFixture提供数据,请查看是的,这甚至更好EAP,这就是我在NUnit中提到的。我正在使用的SetupFixture不可能:(SetupFixture为命名空间中的所有测试提供全局运行一次设置和拆卸。感谢您的澄清。我非常确定NUnit中没有任何东西可以用于此。我假设如果是这种情况,您希望为每个程序集设置运行所有测试装置一次?请随意添加fe向我们的GitHub repo请求NUnit,我将开始讨论。不保证何时/是否实施,但用户的请求更具影响力;)