如何从点更改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;
}
Main.cpp的
CppUnit::TextUi::TestRunner runner;
runner.addTest( Parser_test::suite() );
runner.run();
我希望有这样的输出:
string to state I : OK
string to state II : OK
...
然后我能够确定程序何时由于不可捕获的异常而崩溃,例如SegFault。
但此刻我的ouptut看起来像这样:
...........
Segmentation fault
答案 0 :(得分: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 );
答案 1 :(得分:0)
您需要使用CppUnit::XmlOutputter
。我不确定解决这个问题的确切语法。