Как показать имена тестовых методов с помощью cppunit - PullRequest
5 голосов
/ 03 декабря 2011

Как мне изменить вывод команды 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.

Но на данный момент мой выход выглядит так:

...........
Segmentation fault

Ответы [ 2 ]

6 голосов
/ 06 ноября 2012

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 );
0 голосов
/ 03 декабря 2011

Вы хотите использовать CppUnit::XmlOutputter.Я не уверен в точном синтаксисе, чтобы подключить это.

...