本文主要是介绍CUnit-Automated模式实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.简介
Automated模式非交互式的。客户端启动测试运行,并将结果输出到XML文件。还可以将已注册测试和套件的列表也输出在XML中。可以调用函数CU_set_output_filename
设置输出XML文件的文件名。调用函数CU_list_tests_to_file
可以将测试Suite和Test也输出个另一个XML文件中。
2.测试报告
执行测试,执行成功后,会在当前目录下产生两个xml文件。
- VO_UNITTEST-Listing.xml :对测试用例的报告
- VO_UNITTEST-Results.xml :对测试结果的报告
要查看这两个文件,还需要使用如下xsl和dtd文件:
- CUnit-List.dtd 和 CUnit-List.xsl用于解析列表文件。
- CUnit-Run.dtd 和 CUnit-Run.xsl用于解析结果文件。
这四个文件在CUnit包里面有提供,安装之后在trunk/Share目录下。在查看结果之前,需要把这六个文件:
VO_UNITTEST-Listing.xml, VO_UNITTEST-Results.xml, CUnit-List.dtd, CUnit-List.xsl, CUnit-Run.dtd, CUnit-Run.xsl 拷贝到一个目录下,然后用浏览器打开两个结果的xml文件就可以了。如下图所示:
3.源码
最后附上上面运行测试的源码,VO_UnitTest_RegisterCommands实现代码跟上一篇Console模式的基本项目这里就不贴出来了。
void VO_UnitTest_EntryAutomated(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 automated interface */CU_set_output_filename("VO_UNITTEST");CU_automated_run_tests();CU_list_tests_to_file();mVUT_TRACE((kVUT_NIV_INFO,"Test end, CU_cleanup_registry call\n"));CU_cleanup_registry();mVUT_RETURN;
}
4.内存信息
另外说一下,CUnit在最后测试结束调用CU_cleanup_registry
时还会生成一个内存信息XML文件:CUnit-Memory-Dump.xml
CUnit - A Unit testing framework for C.
http://cunit.sourceforge.net/
CUnit Memory Debugger Report
Memory Allocation/Deallocation Records --------------------------------------------------------------------------------Pointer Alloc File Line Dealloc File Line Data Size
0xcc9a50 TestDB.c 787 TestDB.c 716 24
0xcc9a88 TestDB.c 792 TestDB.c 825 14
0xcc9ab8 TestDB.c 787 TestDB.c 716 24
0xcc9af0 TestDB.c 792 TestDB.c 825 14
0xcc9b20 TestDB.c 665 TestDB.c 639 48
0xcc9b70 TestDB.c 670 TestDB.c 720 9
0xcc9b98 TestDB.c 787 TestDB.c 716 24
0xccc908 TestDB.c 792 TestDB.c 825 15
0xcccb50 TestDB.c 787 TestDB.c 716 24
0xcccda0 TestDB.c 792 TestDB.c 825 16
0xcccfe8 TestDB.c 787 TestDB.c 716 24
0xccd238 TestDB.c 792 TestDB.c 825 16
0xccd480 TestDB.c 787 TestDB.c 716 24
0xccd6d0 TestDB.c 792 TestDB.c 825 16
0xccd918 TestDB.c 665 TestDB.c 639 48
0xcc9bb8 TestDB.c 670 TestDB.c 720 8
0xccddb0 TestDB.c 787 TestDB.c 716 24
0xcce000 TestDB.c 792 TestDB.c 825 14
0xcce3b8 Automated.c 280 Automated.c 303 8
0xcce3b8 Automated.c 280 Automated.c 303 9
0xcce3b8 Automated.c 280 Automated.c 303 8
0xcce810 TestRun.c 708 TestRun.c 826 32
0xccea68 TestRun.c 717 TestRun.c 822 82
0xccecf0 TestRun.c 726 TestRun.c 818 25
0xccef40 TestRun.c 708 TestRun.c 826 32
0xccf198 TestRun.c 717 TestRun.c 822 82
0xccf420 TestRun.c 726 TestRun.c 818 28
0xccf670 Automated.c 370 Automated.c 368 25
0xccf670 Automated.c 370 Automated.c 426 28
0xccfad8 TestRun.c 708 TestRun.c 826 32
0xccfd30 TestRun.c 717 TestRun.c 822 82
0xccffa0 TestRun.c 726 TestRun.c 818 26
0xcd01f0 TestRun.c 708 TestRun.c 826 32
0xcd0448 TestRun.c 717 TestRun.c 822 82
0xcd06d0 TestRun.c 726 TestRun.c 818 26
0xcd0920 TestRun.c 708 TestRun.c 826 32
0xcd0b78 TestRun.c 717 TestRun.c 822 82
0xcd0e00 TestRun.c 726 TestRun.c 818 29
0xcd1058 TestRun.c 708 TestRun.c 826 32
0xcd12b0 TestRun.c 717 TestRun.c 822 82
0xcd1538 TestRun.c 726 TestRun.c 818 29
0xcd1790 Automated.c 370 Automated.c 368 26
0xcd19e0 Automated.c 370 Automated.c 426 29Cumulative Summary for Memory Debugger Dumper Run
Valid Records 46
Invalid Records 0
Total Number of Allocation/Deallocation Records 46
这篇关于CUnit-Automated模式实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!