避免输出到 CppUnit 中的点

Vis*_*ddi 3 c++ unit-testing cppunit

运行 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));
Run Code Online (Sandbox Code Playgroud)

输出是:

.........................
OK (25 tests)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

mog*_*ggi 5

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

方法签名是:

bool TextTestRunner::run( std::string testName,
                       bool doWait,
                       bool doPrintResult,
                       bool doPrintProgress )
Run Code Online (Sandbox Code Playgroud)

与doPrintResult = false和doPrintProgress = false您可以禁止所有输出。

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

PS 只是为了让它更清楚一点,ui::text::TestRunner只是TextTestRunner. 旧的访问方式TextUi::TestRunner已被弃用,TextTestRunner应直接使用。