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  29

Cumulative Summary for Memory Debugger Dumper Run  
Valid Records  											46  
Invalid Records  										0  
Total Number of Allocation/Deallocation Records  		46  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值