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,我将开始讨论。不保证何时/是否实施,但用户的请求更具影响力;)