如何使 CppUnit 日志记录更详细?

Jen*_*fke 5 c++ unit-testing cppunit

我正在使用 CppUnit 为 C++ 库编写单元测试。默认情况下,它打印一个“.”。每个测试的字符到控制台。我想在测试运行之前将每个测试的名称记录在单独的行上。

我研究了 CppUnit API,但如何自定义输出并不明显。它不是提供自定义选项,而是一个可以插入新处理程序的框架。(教程也没有帮助。)我可能会花一天的时间来弄清楚如何做到这一点,但我不能浪费时间。有人可以提供一个可以自定义每个测试日志输出的快速片段吗?

Ste*_*mit 0

定义和安装自定义进度侦听器以在执行之前发出每个测试的名称非常简单。这是我今天写的一篇:

class MyCustomProgressTestListener : public CppUnit::TextTestProgressListener {
 public:
     virtual void startTest(CppUnit::Test *test) {
         fprintf(stderr, "starting test %s\n", test->getName().c_str());
     }
};
Run Code Online (Sandbox Code Playgroud)

将其安装在测试运行器上,如下所示:

CppUnit::TextUi::TestRunner runner;
MyCustomProgressTestListener progress;
runner.eventManager().addListener(&progress);
Run Code Online (Sandbox Code Playgroud)