如果我在 MSTEST 中用 [TestCleanup] 属性标记一个清理函数,它是否会一直运行,即使我的代码中有未处理的异常?有什么会导致此代码块不运行吗?我已经设置并测试了它,它似乎总是运行清理,但我想确保我没有遗漏任何东西。
最佳答案
如果您的测试抛出异常,[TestCleanup] 代码将运行。
我发现唯一会导致 TestCleanup 无法运行的是非托管访问冲突。这最终会取消整个 MSTest 过程。但是管理土地上的几乎任何东西都可以,并且 TestCleanup 将运行。
显然,任何可以终止该过程的事情都会使 TestCleanup 无法运行,如评论中所述,例如,断电、硬盘驱动器故障等。
关于c# - 使用 MSTest 属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6752497/