C# 可以为每个测试用例调用setup和teardown吗?
在上面的示例中,Setup和TearDown在Test1和Test2之前和之后执行。但我希望它在Test2中的单个测试用例之前和之后执行。nunit框架是否可行?我如何才能做到这一点?在纠正了一些打字错误后: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]
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)
运行后平均测试
这不是你希望的吗?你确定吗?我以为你的行为和你期望的一样,你确定吗?我认为这种行为和你期望的一样。