运行环境
VS2019+NUnit3.x
测试代码如下
public static class BaseData
{
public static string RunLog="None\n";
}
[SetUpFixture]
public class SetUp1
{
[OneTimeSetUp]
public void Setup()
{
BaseData.RunLog += "Setting.Setup run\n";
}
[OneTimeTearDown]
public void TearDown()
{
BaseData.RunLog += "Setting.TearDown run\n";
}
}
[TestFixture]
public class UnitTest1
{
[OneTimeSetUp]
public void Setup1()
{
BaseData.RunLog += "UnitTest1.OneTimeSetUp run\n";
}
[SetUp]
public void Setup()
{
BaseData.RunLog += "UnitTest1.Setup run\n";
}
[OneTimeTearDown]
public void TearDown1()
{
BaseData.RunLog += "UnitTest1.OneTimeTearDown run\n";
}
[TearDown]
public void TearDown()
{
BaseData.RunLog += "UnitTest1.TearDown run\n";
}
[Test]
public void Test1()
{
BaseData.RunLog += "UnitTest1.Test1 run\n";
}
[Test]
public void Test2()
{
BaseData.RunLog += "UnitTest1.Test2 run\n";
}
}
[TestFixture]
public class UnitTest2
{
[OneTimeSetUp]
public void Setup1()
{
BaseData.RunLog += "UnitTest2.OneTimeSetUp run\n";
}
[SetUp]
public void Setup()
{
BaseData.RunLog += "UnitTest2.Setup run\n";
}
[OneTimeTearDown]
public void TearDown1()
{
BaseData.RunLog += "UnitTest2.OneTimeTearDown run\n";
}
[TearDown]
public void TearDown()
{
BaseData.RunLog += "UnitTest2.TearDown run\n";
}
[Test]
public void Test1()
{
BaseData.RunLog += "UnitTest2.Test1 run\n";
}
[Test]
public void Test2()
{
BaseData.RunLog += "UnitTest2.Test2 run\n";
}
}
运行结果如下
None
Setting.Setup run
UnitTest1.OneTimeSetUp run
UnitTest1.Setup run
UnitTest1.Test1 run
UnitTest1.TearDown run
UnitTest1.Setup run
UnitTest1.Test2 run
UnitTest1.TearDown run
UnitTest1.OneTimeTearDown run
UnitTest2.OneTimeSetUp run
UnitTest2.Setup run
UnitTest2.Test1 run
UnitTest2.TearDown run
UnitTest2.Setup run
UnitTest2.Test2 run
UnitTest2.TearDown run
UnitTest2.OneTimeTearDown run
Setting.TearDown run
注:在类SetUp1中心写的输出代码,不知道输出到什么地方了。反正我没看到在任何的地方有。所以,被逼无奈,才做了一个静态变量存放结果。然后在调试里监视变量值。