使用MSTest属性

esa*_*ncy 3 c# testing unit-testing mstest

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

Dav*_*Yaw 5

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

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

显然,任何可以终止该进程的东西都会使TestCleanup无法运行,如评论中所提到的,例如断电,硬盘故障等.