2011-12-14 22 views
0

我在Visual Studio中创建了一些单元测试,我想创建一个基类,在我的应用程序中创建一组特定的测试数据,然后当测试运行中的最后一个单元测试完成时,自动清理测试数据。我可以处理数据的创建,我只是不知道是否可以告诉测试运行已完成。如何添加最后一次单元测试完成时触发的事件?

换句话说:

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

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

+0

什么是反对票? – Daryl 2012-10-29 13:25:47

回答

2

您可以使用AssemblyCleanupAttribute。当一个方法用该属性修饰时,MS Test将在当前测试运行中的所有测试(该组件)完成时执行该方法。

[AssemblyCleanup] 
    public static void AssemblyCleanup() 
    { 
     //Remove data here when necessary 
    } 
+0

这就是我正在寻找的东西......我正在通过一些主要的黑客来运行一个批处理文件,该文件执行一个powershell命令,然后调用一个C#方法。这正是我所期待的。 – Daryl 2011-12-16 14:12:33

相关问题