如何使用cppunit显示testmethod名称

Sim*_*Sim 5 c++ 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;
}
Run Code Online (Sandbox Code Playgroud)

Main.cpp的

CppUnit::TextUi::TestRunner runner;
runner.addTest( Parser_test::suite() );
runner.run();
Run Code Online (Sandbox Code Playgroud)

我希望有这样的输出:

string to state I : OK
string to state II : OK
...
Run Code Online (Sandbox Code Playgroud)

然后,我能够确定程序何时由于不可捕获的异常(如SegFault)而崩溃.

但此刻我的ouptut看起来像这样:

...........
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

小智 6

BriefTestProgressListener完成工作:

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


Mic*_*ice 1

你会想利用CppUnit::XmlOutputter. 我不确定连接它的确切语法。