避免在输出到 CppUnit 时出现点

Avoiding dots in output to CppUnit

本文关键字:CppUnit 输出      更新时间:2023-10-16

当运行CppUnit测试时,xml或文本文件的输出中存在点。

freopen("UnitTest-Results.xml", "a", stdout);
CppUnit::TextUi::TestRunner runner;
runner.addTest(pSuite);
// Change the default outputter to a Text Outputter.
runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), std::cout));

输出为:

.........................
OK (25 tests)

如何选择不打印输出文件中的点?

谢谢

根据调用 run 的方式,您可以指定正确的参数来跳过输出。

方法签名为:

bool TextTestRunner::run( std::string testName,
                       bool doWait,
                       bool doPrintResult,
                       bool doPrintProgress )

使用doPrintResult = falsedoPrintProgress = false,您可以抑制所有输出。

另一种方法是使用 TestRunner 或您自己的子类。这也不是那么困难,它只是取决于测试的结构,哪一个更容易实现。

附言只是为了更清楚一点,ui::text::TestRunner只是TextTestRunner的别名。通过TextUi::TestRunner的旧访问方式已弃用,应直接使用TextTestRunner