C# 可以为每个测试用例调用setup和teardown吗?

C# 可以为每个测试用例调用setup和teardown吗?,c#,nunit,C#,Nunit,在上面的示例中,Setup和TearDown在Test1和Test2之前和之后执行。但我希望它在Test2中的单个测试用例之前和之后执行。nunit框架是否可行?我如何才能做到这一点?在纠正了一些打字错误后: [Setup] public void RunBeforeAnyTest() { } [TearDown] public void RunAfterEveryTest() { } [Test] public void Test1() { } [TestCase("case1")] [

在上面的示例中,Setup和TearDown在Test1和Test2之前和之后执行。但我希望它在Test2中的单个测试用例之前和之后执行。nunit框架是否可行?我如何才能做到这一点?

在纠正了一些打字错误后:

[Setup]
public void RunBeforeAnyTest()
{
}

[TearDown]
public void RunAfterEveryTest()
{
}

[Test]
public void Test1()
{
}

[TestCase("case1")]
[Testcase("case2")]
public void Test2()
{
}
输出为:

[TestFixture]
public class Class1
{
    [SetUp]
    public void RunBeforeAnyTest()
    {
        Console.WriteLine("RunBeforeAnyTest");
    }

    [TearDown]
    public void RunAfterEveryTest()
    {
        Console.WriteLine("RunAfterEveryTest");
    }

    [Test]
    public void Test1()
    {
        Console.WriteLine("Test1()");
    }

    [TestCase("case1")]
    [TestCase("case2")]
    public void Test2(string param)
    {
        Console.WriteLine($"Test2({param})");
    }
}
运行之前任何测试 Test1() 运行后平均测试 运行之前任何测试 测试2(案例1) 运行后平均测试 运行之前任何测试 测试2(案例2) 运行后平均测试
这不是你希望的吗?

在更正了一些拼写错误后:

[Setup]
public void RunBeforeAnyTest()
{
}

[TearDown]
public void RunAfterEveryTest()
{
}

[Test]
public void Test1()
{
}

[TestCase("case1")]
[Testcase("case2")]
public void Test2()
{
}
输出为:

[TestFixture]
public class Class1
{
    [SetUp]
    public void RunBeforeAnyTest()
    {
        Console.WriteLine("RunBeforeAnyTest");
    }

    [TearDown]
    public void RunAfterEveryTest()
    {
        Console.WriteLine("RunAfterEveryTest");
    }

    [Test]
    public void Test1()
    {
        Console.WriteLine("Test1()");
    }

    [TestCase("case1")]
    [TestCase("case2")]
    public void Test2(string param)
    {
        Console.WriteLine($"Test2({param})");
    }
}
运行之前任何测试 Test1() 运行后平均测试 运行之前任何测试 测试2(案例1) 运行后平均测试 运行之前任何测试 测试2(案例2) 运行后平均测试
这不是你希望的吗?

你确定吗?我以为你的行为和你期望的一样,你确定吗?我认为这种行为和你期望的一样。