CUint

1. CUnit安装

1) 下载CUnit源码包(CUnit-2.1-0-src.tar.gz)
2) CUnit源码包的解压。
输入如下命令:

#tar xzvf CUnit-2.1-0-src.tar.gz

执行结束后,将会在当前目录下生成一个解压后的文件夹(CUnit-2.1-0)。

3) 解压结束后,开始进行编译和安装。

#su 变换为root
#cd CUnit-2.1-0
#aclocal 
#autoconf 
#automake 
#chmod u+x configure
#./configure --prefix <Your choice of directory for installation>
(对上一句进行解释,<Your choice of directory for installation>这个位置,需要你输入要安装的目录,目录的格式举例如下:/usr/unittest/)
#make (可能会编译出错,如果是”../libtool: line 818: X--tag=CC: command not found”类似的错误,解决办法是“目录下找到libtool,把里面的$echo全部替换为$ECHO”,方法是gvim :%s/$echo/$ECHO/g)
#make install
这里需要一段时间...
#cd /usr/unittest/lib
#ldconfig

2. CUnit结构

                Test Registry
                        |
         ------------------------------
         |                                       |
      Suite '1'      . . . .              Suite 'N'
         |                                        |
   -----------                          ------------
   |             |                          |             |
Test '11' ... Test '1M'     Test 'N1' ... Test 'NM'

一 次测试(Test Registry)可以运行多个测试包(Test Suite),而每个测试包可以包括多个测试用例(Test Case),每个测试用例又包含一个或者多个断言类的语句。具体到程序的结构上,一次测试下辖多个Test Suite,它对应于程序中各个独立模块;一个Suite管理多个Test Case,它对应于模块内部函数实现。每个Suite可以含有setup和teardown函数,分别在执行suite的前后调用。

3、实例

参考:http://www.cnblogs.com/linux-sir/archive/2012/08/25/2654557.html

//将测试用例加入到测试用例集中
// CU_TestInfo是Cunit内置的一个结构体,它包括测试方法及描述信息
CU_TestInfo testcase[] = {
       {"test_for_lenth:",test_string_lenth},   //测试用例名+测试用例的函数指针
       {"test_for_add:",test_add_str    },
       CU_TEST_INFO_NULL
};

CU_TestInfo testcase2[] = {
       {"test for Upper :",test_to_Upper    },
       CU_TEST_INFO_NULL
};

//将测试用例集加入到一个测试包中
//定义suite数组,包括多个suite,每个suite又会包括若干个测试方法。
CU_SuiteInfo suites[] = {
    {"testSuite1",suite_success_init,suite_success_clean,testcase},   //将测试用例集testcase加入到测试包1中
    {"testsuite2",suite_success_init,suite_success_clean,testcase2},  //将测试用例集testcase2加入到测试包2中
    CU_SUITE_INFO_NULL
};

CU_initialize_registry();    //注册registry
CU_register_suites(suites);  //注册所有的测试包suite

你可能感兴趣的:(CUint)