我们使用 CPPUnit 来测试我们的测试框架
测试组织在测试夹具中(继承自 CPPUNIT_NS::TestFixture)
有一个新要求 - 只有在测试失败时才在测试结束时清除应用程序缓冲区。
我可以在测试夹具的重载 teardown() 函数中执行此操作。 但是如何知道测试是否失败。
使用 CPPUNIT_ASSERT 检查测试结果。
大约有 12 个测试夹具,每个夹具有大约 10 个测试。 如何以最少的代码更改实现这一目标?
最佳答案
我认为这在一定程度上取决于您如何调用测试,但我的第一个想法是使用 TestListener 并对 TestListener::addFailure 调用使用react。
但是请注意,理论上 tearDown 也可以抛出异常(可能通过 CPPUNIT_ASSERT),这也会调用 TestListener::addFailure。
如果这不起作用,一个明显但非常丑陋的解决方案是在每个测试方法的末尾设置一个标志,表示测试成功完成,并在未设置标志时调用您的代码。
关于c++ - 如何在cppunit中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32197966/