4

我有一个包含 aTestInitialize和 a的基类TestCleanup。然后我有其他从这个类继承的测试类。当TestCleanup派生类的测试失败时,应该执行某些操作。

TestCleanup实际测试中测试失败时执行。但是,当 中的测试失败时TestInitializeTestCleanup甚至不会被执行。为什么会发生这种情况,有没有办法让TestCleanup被调用?

我不认为TestInitializeandTestCleanup在基类中的事实根本不会导致这个问题,我只是想提供更多信息以防万一。

4

3 回答 3

7

这是一个已知的问题。似乎已向 Microsoft Connect 报告。

http://connect.microsoft.com/VisualStudio/feedback/details/694337/testcleanup-method-does-not-run-when-it-should

于 2013-07-22T13:22:36.383 回答
2

在我看来,您不应该在 TestInitialize 中编写可能失败的代码。

如果您认为您所做的事情是正确的,并且您只想在它失败时捕获它,为什么不使用 try-catch 包装 TestInitialize 并在异常时调用您的代码或 TestCleanup?

于 2013-07-22T13:16:33.713 回答
0

我们在 TestInitialize 中有一个 try catch。它用于编码的 UI 测试,如果您不终止应用程序/浏览器,您将在下次连接到测试环境时打开多个窗口(如果您正在其中一个上进行部署和测试)。

在谈论 CodedUI 时,testinitialize 中可能会出现很多问题,因此请使用 TryCatch,并在 Catch 中手动调用 TestCleanup。更正确的是,在 Catch 中,我们以与 TestCleanup 相同的方式杀死应用程序/浏览器。我们不调用清理函数。但如果可以的话,那就去做吧。

于 2013-08-22T07:30:00.407 回答