如何添加在最后一个单元测试完成时触发的事件

本文关键字:完成时 单元测试 事件 最后一个 何添加 添加 | 更新日期: 2023-09-27 18:18:04

我正在Visual Studio中创建一些单元测试,我想创建一个基类,在我的应用程序中创建一组特定的测试数据,然后当测试运行中的最后一个单元测试完成时,自动清理测试数据。我可以很好地处理数据的创建,我只是不知道是否有可能告诉测试运行已经完成。

换句话说:

  • UnitTest1和UnitTest2继承UnitTestBaseCreateData(相反,它们可以调用UnitTest1和UnitTest2的构造函数中的静态方法,创建测试数据)
  • UnitTest3和UnitTest4不需要创建数据。
  • 如果我选择并运行UnitTests 1,2,3和4,测试数据将根据测试1的需求创建,并在测试4完成后自动清理
  • 如果我选择并运行UnitTests 3和4,测试数据将不会创建,清理代码将不会运行。
  • 如果我选择并只运行单元测试1,测试数据将按需创建,然后在测试4完成后清理。

我只是不知道是否有一些[TestRunCleanup()](类似于TestCleanup和ClassCleanup属性)到一个可用的方法属性,我可以用它作为钩子,看看我是否有测试数据,我需要清理…

如何添加在最后一个单元测试完成时触发的事件

您可以使用AssemblyCleanupAttribute。当使用该属性装饰方法时,MS Test将在当前测试运行中的所有测试(该程序集的所有测试)完成时执行该方法。

    [AssemblyCleanup]
    public static void AssemblyCleanup()
    {
        //Remove data here when necessary
    }
相关文章: