使用MSTest属性

时间:2011-07-19 18:52:49

标签: c# unit-testing testing mstest

如果我使用MSTEST中的[TestCleanup]属性标记清理函数,它是否会一直运行,即使我的代码中存在未处理的异常?是否有任何会导致此代码块无法运行?我已经设置好并测试它,它似乎总是运行清理,但我想确保我没有遗漏一些东西。

2 个答案:

答案 0 :(得分:5)

如果您的测试抛出异常,则[TestCleanup]代码将运行。

我发现唯一会导致TestCleanup无法运行的是非托管访问冲突。最终取消了整个MSTest流程。但是在管理的土地上几乎任何东西都可以,而且TestCleanup会运行。

显然,任何可以终止该进程的内容都会使TestCleanup无法运行,如评论中所提到的那样,例如掉电,硬盘故障等。

答案 1 :(得分:0)

如果TestInitialize引发异常,TestCleanup不会运行。这是一个常见的功能"单元测试框架。