C++ 如何使用cppunit显示testmethod名称

C++ 如何使用cppunit显示testmethod名称,c++,cppunit,C++,Cppunit,我如何将cppunit的输出从点更改为点,指示对测试的实际名称进行了多少测试,或者至少是给测试调用方的字符串,因为计算点和猜测它代表的测试函数是非常无效的,如果出现分段错误,实际上会导致整个程序死机。我只是找到了在断言失败的情况下更改错误输出的参考,但在常规输出上什么都没有 我的Testclass的套件函数: static CppUnit::Test *suite() { CppUnit::TestSuite *suiteOfTests = new CppUnit

我如何将cppunit的输出从点更改为点,指示对测试的实际名称进行了多少测试,或者至少是给测试调用方的字符串,因为计算点和猜测它代表的测试函数是非常无效的,如果出现分段错误,实际上会导致整个程序死机。我只是找到了在断言失败的情况下更改错误输出的参考,但在常规输出上什么都没有

我的Testclass的套件函数:

static CppUnit::Test *suite() {
                CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite( "Map Parser" );
                //string to state
                suiteOfTests->addTest( new CppUnit::TestCaller<Parser_test>("string to state I",&Parser_test::test_string_to_state_I));
                ....
                return suiteOfTests;
}
我希望有这样的输出:

string to state I : OK
string to state II : OK
...
...........
Segmentation fault
这样,我就能够确定程序何时因不可捕获的异常(如SegFault)而崩溃

但目前我的照片是这样的:

string to state I : OK
string to state II : OK
...
...........
Segmentation fault

您需要使用
CppUnit::XmlOutputter
。我不确定连接这个的确切语法。

由一个简短的TestProgressListener完成这项工作:

CppUnit::TestResult controller;

CppUnit::TestResultCollector result;
controller.addListener( &result );        

CppUnit::BriefTestProgressListener progressListener;
controller.addListener( &progressListener );

CppUnit::TestRunner runner;
runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );   

runner.run( controller );

那怎么行?一段如何传递此命令行参数的代码将非常有用。它是一个命令行参数。。。因此,当您在shell中时,可以将其添加到命令行
/test\u binary\u to\u run--xml
好吧,我的代码中没有传递命令行参数的形式,所以这个参数永远不会到达工具,主页也不提供帮助。你能写一个小的主视图吗?我很抱歉。。。我们在工作中使用的测试可执行文件处理我提到的命令行参数,并在CppUnit中调用适当的代码。我一有机会就修改答案。