今天继续运行CUnit Basic模式看看效果,Basic模式其实跟Console模式类似,只是Basic模式是非交互的,程序运行就直接开始执行测试。
Basic模式中所有的测试信息都是通过标准输出(stdout)输出,可以调用函数CU_basic_set_mode
控制输出信息。测试结束可以调用函数CU_basic_show_failures
输出所有的测试失败信息。
CUnit - A unit testing framework for C - Version @VERSION@-@RELEASE@
http://cunit.sourceforge.net/
Suite: SuiteOs
Test: OS_T1_SLEEP_1 ... passed
Test: OS_T1_SLEEP_2 ... passed
Suite: SuiteDsc
Test: DSC_T1_OpenErr ... passed
Test: DSC_T1_OpenSuc1 ... FAILED
1. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:119 - hDsc!=kVA_ILLEGAL_HANDLE
2. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:125 - VA_DSCR_Close(hDsc)==kVA_OK
Test: DSC_T1_OpenSuc2 ...FAILED
1. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:136 - hDsc0!=kVA_ILLEGAL_HANDLE
2. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:139 - hDsc1!=kVA_ILLEGAL_HANDLE
3. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:141 - VA_DSCR_Close(hDsc0)==kVA_OK
4. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:142 - VA_DSCR_Close(hDsc1)==kVA_OK
Test: DSC_T1_CloseErr ... passed
Suite: SuiteSc
Test: DSC_T1_Reset1 ... passed
Run Summary: Type Total Ran Passed Failed Inactive
suites 3 3 n/a 0 0
tests 7 7 5 2 0
asserts 22 22 16 6 n/a
Elapsed time = 261.565 seconds
//下面是调用CU_basic_show_failures函数输出的失败项信息:
1. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:119 - hDsc!=kVA_ILLEGAL_HANDLE
2. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:125 - VA_DSCR_Close(hDsc)==kVA_OK
3. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:136 - hDsc0!=kVA_ILLEGAL_HANDLE
4. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:139 - hDsc1!=kVA_ILLEGAL_HANDLE
5. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:141 - VA_DSCR_Close(hDsc0)==kVA_OK
6. /home/suyd/other/env/dts3452/Project_v28/ACS/ViaccessDta/UnitTest/VoUnitTestDsc.c:142 - VA_DSCR_Close(hDsc1)==kVA_OK
最后附上上面运行测试的源码,VO_UnitTest_RegisterCommands实现代码跟上一篇Console模式的基本项目这里就不贴出来了。
void VO_UnitTest_EntryBasic(void)
{
CU_ErrorCode cu_err=CUE_SUCCESS;
mVUT_FCT_ENTER();
cu_err = CU_initialize_registry();
if (cu_err!=CUE_SUCCESS)
{
mVUT_TRACE((kVUT_NIV_CRITICAL,"CU_initialize_registry failed=%d.\n",cu_err));
mVUT_RETURN;
}
cu_err = VO_UnitTest_RegisterCommands();
if (cu_err!=CUE_SUCCESS)
{
mVUT_TRACE((kVUT_NIV_CRITICAL,"VO_UnitTest_RegisterCommands failed=%d.\n",cu_err));
CU_cleanup_registry();
mVUT_RETURN;
}
/* Run all tests using the CUnit Basic interface */
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_basic_show_failures(CU_get_failure_list());
mVUT_TRACE((kVUT_NIV_INFO,"Test end, CU_cleanup_registry call\n"));
CU_cleanup_registry();
mVUT_RETURN;
}