如果我使用MSTEST中的[TestCleanup]属性标记清理函数,它是否会一直运行,即使我的代码中存在未处理的异常?是否有任何会导致此代码块无法运行?我已经设置好并测试它,它似乎总是运行清理,但我想确保我没有遗漏一些东西。
答案 0 :(得分:5)
如果您的测试抛出异常,则[TestCleanup]代码将运行。
我发现唯一会导致TestCleanup无法运行的是非托管访问冲突。最终取消了整个MSTest流程。但是在管理的土地上几乎任何东西都可以,而且TestCleanup会运行。
显然,任何可以终止该进程的内容都会使TestCleanup无法运行,如评论中所提到的那样,例如掉电,硬盘故障等。
答案 1 :(得分:0)
如果TestInitialize引发异常,TestCleanup不会运行。这是一个常见的功能"单元测试框架。