5

如何从点更改 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;
}

主文件

CppUnit::TextUi::TestRunner runner;
runner.addTest( Parser_test::suite() );
runner.run();

我希望有一些这样的输出:

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

这样我就可以确定程序何时由于不可捕获的异常(例如 SegFault)而崩溃。

但目前我的输出看起来像这样:

...........
Segmentation fault
4

2 回答 2

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 );
于 2012-11-05T22:07:56.310 回答
1

你会想要利用CppUnit::XmlOutputter. 我不确定将其连接起来的确切语法。

于 2011-12-03T03:41:23.350 回答