C#:在classcleanup期间捕获测试失败

时间:2010-12-19 01:29:47

标签: c# unit-testing

是否可以在ClassCleanup中嵌套TestMethods并使它们作为TestMethods而不是常规方法调用运行/行为?

我有一个TestClass来测试我为管理进程而创建的AppMngr类。我测试打开/关闭应用程序的能力(例如MyNotepadMngrClass.Open()和... Close())。我还有几个在该过程中工作的类(例如MyNotepadWorkerClass.WriteLine()或... DoSomething())。在测试其他类时,我需要启动记事本并在完成后关闭它。 ClassInitialize / ClassCleanup是显而易见的地方。但我想确认记事本关闭。

所以我为Close操作创建了一个静态[TestMethod]。我在MyNotepadWorkerTestClass中从ClassCleanup调用它。它执行关闭操作很好。但是如果我添加类似的东西--Assert.IsFalse(true); - 对于我的close方法的主体,测试运行不会失败。

让我知道我试图做什么从根本上是错误的。感谢任何你可以给予帮助。

P.S。嘿TestStand伙计们,我在RunSelectedStep期间寻找Setup / Ceanup行为。 TestDriven.NET给了我RunSelectedStep。那么如何在ClassInitialize和ClassCleanup中捕获失败。

1 个答案:

答案 0 :(得分:3)

ClassCleanup根据定义“在测试类中的所有测试都已运行”(from msdn)后使用,因此您可能无法在其中添加新的测试方法。您需要重新构建测试。