NUnit测试执行顺序

这篇博客探讨了在VS2019中使用NUnit3.x进行单元测试时,测试类和方法的初始化与清理过程。通过示例代码展示了[SetUpFixture]、[OneTimeSetUp]、[SetUp]、[OneTimeTearDown]和[TearDown]等方法的执行顺序,以及静态变量在跟踪测试流程中的应用。
摘要由CSDN通过智能技术生成

运行环境

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中心写的输出代码,不知道输出到什么地方了。反正我没看到在任何的地方有。所以,被逼无奈,才做了一个静态变量存放结果。然后在调试里监视变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值