我有一个基类,其中包含TestInitialize
和TestCleanup
。然后我有其他继承自这个类的测试类。当派生类的测试失败时,TestCleanup
应该执行某些操作。
在实际测试中测试失败时执行TestCleanup
。但是,当TestInitialize
中的测试失败时,TestCleanup
甚至无法执行。为什么会发生这种情况,有没有办法让TestCleanup
被调用?
我认为TestInitialize
和TestCleanup
在基类中的事实根本不会导致这个问题,我只是想提供更多信息以防它出现。< / p>
答案 0 :(得分:6)
这是一个已知问题。看起来它已被报告给Microsoft connect。
答案 1 :(得分:2)
在我的意见中,您不应该在可能失败的TestInitialize中编写代码。
如果您认为您正在做的事情是正确的,并且您只是想在失败时捕获它,为什么不用try-catch包装TestInitialize并在异常时调用您的代码或TestCleanup?
答案 2 :(得分:0)
我们在TestInitialize中有一个try catch。它用于编码的UI测试,如果你不杀死应用程序/浏览器,下次连接到测试环境时,你将打开多个窗口(如果你正在部署和测试其中一个)。
在谈论CodedUI时,在testinitialize中有很多可能出错的东西,所以使用TryCatch,并在Catch中手动调用TestCleanup。更正确的是,在Catch中,我们以与TestCleanup相同的方式杀死应用程序/浏览器。我们不打电话给清理功能。但如果可以,那就这样做。