2011-07-19 25 views
3

如果我用MSTEST中的[TestCleanup]属性标记一个清理函数,它会总是运行,即使我的代码中有未处理的异常?有什么会导致此代码块不运行?我已经设置并测试它,它似乎总是运行清理,但我想确保我不会错过任何东西。使用MSTest属性

+5

是的,如果进程崩溃,电源丢失,硬盘驱动器出现故障等... –

回答

5

如果您的测试引发异常,将会运行[TestCleanup]代码。

我发现唯一会导致TestCleanup无法运行的是非托管访问冲突。这最终取消了整个MSTest流程。但几乎所有托管的土地都可以,TestCleanup将运行。

显然,任何可以终止该进程将使TestCleanup无法运行,如在评论中所提到的,例如,掉电,硬盘驱动器故障等

0

如果TestInitialize抛出TestCleanup不运行例外。这是单元测试框架的一个常见“特征”。