CUnit在Linux下安装配置
来源:互联网 发布:数据库导入excel表格 编辑:程序博客网 时间:2024/04/29 12:48
CUnit在Linux下安装配置 (2009-09-26 00:39)
分类: 工具使用心得体会
CUnit在Linux下的配置说明
2009/07/22 17:02
关键字:CUnit Linux 配置 xml
由于项目需要,对于C语言的单元测试工具CUnit在Linux下如何使用进行了调查,在网上对相关内容进行搜索发现,很多内容都很相近,甚至完全一样,在这篇争相转载的文章中,虽有详细的说明,但也有描述的不甚清晰之处,对于刚刚接触Linux的同学,往往是一头雾水,不能很顺利的配置出来。籍着此次的调查机会,现将具体的步骤和配置过程中需要注意的地方进行了补充说明,希望能对以后需要进行同样工作的同学有些帮助。
1、首先在http://cunit.sourceforge.net/index.html链接处,下载最新版本的CUnit源码包(CUnit-2.1-0-src.tar.gz)。
2、将CUnit源码包(CUnit-2.1-0-src.tar.gz)复制到Linux的目标目录下,比如我在这里放到了/usr/unittest目录下。
3、CUnit源码包的解压。打开[System Tools]-〉[Terminal],进入到/usr/unittest目录下,
输入如下命令:
#tar xzvf CUnit-2.1-0-src.tar.gz
执行结束后,将会在当前目录下生成一个解压后的文件夹(CUnit-2.1-0)。
4、解压结束后,开始进行编译和安装。
#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
#make install
这里需要一段时间...
#cd /usr/unittest/lib
#ldconfig
最后这两句,感觉像是没什么用,有时间证实一下。
到此处为止,CUnit的安装基本上就到一段落了。
接下来是来测试我们的代码工作流程。
将要测试的代码复制到/usr/unittest目录下,
输入如下命令:
#export LD_LIBRARY_PATH=/usr/unittest/lib
#gcc -o test -I/usr/unittest/include -L/usr/unittest/lib -lcunit run_test.c test_func.c func.c
这样,即可在/usr/unittest目录下生成可执行文件test。
#./test
执行该文件,执行成功后,会在当前目录下产生两个xml文件。
①TestMax-Listing.xml :对测试用例的报告
②TestMax-Results.xml :对测试结果的报告
要查看这两个文件,还需要使用如下xsl和dtd文件:
CUnit-List.dtd和CUnit-List.xsl用于解析列表文件,
CUnit-Run.dtd和CUnit-Run.xsl用于解析结果文件。
这四个文件在CUnit包里面有提供,安装之后在unittest/share/CUnit目录下,
默认安装的话在/home/usr/local/share/CUnit目录下。
在查看结果之前,需要把这六个文件:
TestMax-Listing.xml, TestMax-Results.xml, CUnit-List.dtd, CUnit-List.xsl, CUnit-Run.dtd, CUnit-Run.xsl拷贝到一个目录下,然后用浏览器打开两个结果的xml文件就可以了。
--------------------------------------------------
示例代码如下:
func.c
--------
int maxi(int i, int j)
{
return i>j?i:j;
// return i;
}
--------
test_func.c
--------
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "include/CUnit/CUnit.h"
#include "include/CUnit/Automated.h"
/**//*---- functions to be tested ------*/
extern int maxi(int i, int j);
/**//*---- test cases ------------------*/
void testIQJ()
{
CU_ASSERT_EQUAL(maxi(1,1),1);
CU_ASSERT_EQUAL(maxi(0,-0),0);
}
void testIGJ()
{
CU_ASSERT_EQUAL(maxi(2,1),2);
CU_ASSERT_EQUAL(maxi(0,-1),0);
CU_ASSERT_EQUAL(maxi(-1,-2),-1);
}
void testILJ()
{
CU_ASSERT_EQUAL(maxi(1,2),2);
CU_ASSERT_EQUAL(maxi(-1,0),0);
CU_ASSERT_EQUAL(maxi(-2,-1),-1);
}
CU_TestInfo testcases[] = {
{"Testing i equals j:", testIQJ},
{"Testing i greater than j:", testIGJ},
{"Testing i less than j:", testILJ},
CU_TEST_INFO_NULL
};
/**//*---- test suites ------------------*/
int suite_success_init(void) { return 0; }
int suite_success_clean(void) { return 0; }
CU_SuiteInfo suites[] = {
{"Testing the function maxi:", suite_success_init, suite_success_clean, testcases},
CU_SUITE_INFO_NULL
};
/**//*---- setting enviroment -----------*/
void AddTests(void)
{
assert(NULL != CU_get_registry());
assert(!CU_is_test_running());
/**//* shortcut regitry */
if(CUE_SUCCESS != CU_register_suites(suites)){
fprintf(stderr, "Register suites failed - %s ", CU_get_error_msg());
exit(EXIT_FAILURE);
}
}
--------
run_test.c
--------
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main( int argc, char *argv[] )
{
printf("hello");
if(CU_initialize_registry()){
fprintf(stderr, " Initialization of Test Registry failed. ");
exit(EXIT_FAILURE);
}else{
AddTests();
CU_set_output_filename("TestMax");
CU_list_tests_to_file();
CU_automated_run_tests();
CU_cleanup_registry();
}
return 0;
}
-----------------------end--------------------------------
由于项目需要,对于C语言的单元测试工具CUnit在Linux下如何使用进行了调查,在网上对相关内容进行搜索发现,很多内容都很相近,甚至完全一样,在这篇争相转载的文章中,虽有详细的说明,但也有描述的不甚清晰之处,对于刚刚接触Linux的同学,往往是一头雾水,不能很顺利的配置出来。籍着此次的调查机会,现将具体的步骤和配置过程中需要注意的地方进行了补充说明,希望能对以后需要进行同样工作的同学有些帮助。
1、首先在http://cunit.sourceforge.net/index.html链接处,下载最新版本的CUnit源码包(CUnit-2.1-0-src.tar.gz)。
2、将CUnit源码包(CUnit-2.1-0-src.tar.gz)复制到Linux的目标目录下,比如我在这里放到了/usr/unittest目录下。
3、CUnit源码包的解压。打开[System Tools]-〉[Terminal],进入到/usr/unittest目录下,
输入如下命令:
#tar xzvf CUnit-2.1-0-src.tar.gz
执行结束后,将会在当前目录下生成一个解压后的文件夹(CUnit-2.1-0)。
4、解压结束后,开始进行编译和安装。
#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
#make install
这里需要一段时间...
#cd /usr/unittest/lib
#ldconfig
最后这两句,感觉像是没什么用,有时间证实一下。
到此处为止,CUnit的安装基本上就到一段落了。
接下来是来测试我们的代码工作流程。
将要测试的代码复制到/usr/unittest目录下,
输入如下命令:
#export LD_LIBRARY_PATH=/usr/unittest/lib
#gcc -o test -I/usr/unittest/include -L/usr/unittest/lib -lcunit run_test.c test_func.c func.c
这样,即可在/usr/unittest目录下生成可执行文件test。
#./test
执行该文件,执行成功后,会在当前目录下产生两个xml文件。
①TestMax-Listing.xml :对测试用例的报告
②TestMax-Results.xml :对测试结果的报告
要查看这两个文件,还需要使用如下xsl和dtd文件:
CUnit-List.dtd和CUnit-List.xsl用于解析列表文件,
CUnit-Run.dtd和CUnit-Run.xsl用于解析结果文件。
这四个文件在CUnit包里面有提供,安装之后在unittest/share/CUnit目录下,
默认安装的话在/home/usr/local/share/CUnit目录下。
在查看结果之前,需要把这六个文件:
TestMax-Listing.xml, TestMax-Results.xml, CUnit-List.dtd, CUnit-List.xsl, CUnit-Run.dtd, CUnit-Run.xsl拷贝到一个目录下,然后用浏览器打开两个结果的xml文件就可以了。
--------------------------------------------------
示例代码如下:
func.c
--------
int maxi(int i, int j)
{
return i>j?i:j;
// return i;
}
--------
test_func.c
--------
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "include/CUnit/CUnit.h"
#include "include/CUnit/Automated.h"
/**//*---- functions to be tested ------*/
extern int maxi(int i, int j);
/**//*---- test cases ------------------*/
void testIQJ()
{
CU_ASSERT_EQUAL(maxi(1,1),1);
CU_ASSERT_EQUAL(maxi(0,-0),0);
}
void testIGJ()
{
CU_ASSERT_EQUAL(maxi(2,1),2);
CU_ASSERT_EQUAL(maxi(0,-1),0);
CU_ASSERT_EQUAL(maxi(-1,-2),-1);
}
void testILJ()
{
CU_ASSERT_EQUAL(maxi(1,2),2);
CU_ASSERT_EQUAL(maxi(-1,0),0);
CU_ASSERT_EQUAL(maxi(-2,-1),-1);
}
CU_TestInfo testcases[] = {
{"Testing i equals j:", testIQJ},
{"Testing i greater than j:", testIGJ},
{"Testing i less than j:", testILJ},
CU_TEST_INFO_NULL
};
/**//*---- test suites ------------------*/
int suite_success_init(void) { return 0; }
int suite_success_clean(void) { return 0; }
CU_SuiteInfo suites[] = {
{"Testing the function maxi:", suite_success_init, suite_success_clean, testcases},
CU_SUITE_INFO_NULL
};
/**//*---- setting enviroment -----------*/
void AddTests(void)
{
assert(NULL != CU_get_registry());
assert(!CU_is_test_running());
/**//* shortcut regitry */
if(CUE_SUCCESS != CU_register_suites(suites)){
fprintf(stderr, "Register suites failed - %s ", CU_get_error_msg());
exit(EXIT_FAILURE);
}
}
--------
run_test.c
--------
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int main( int argc, char *argv[] )
{
printf("hello");
if(CU_initialize_registry()){
fprintf(stderr, " Initialization of Test Registry failed. ");
exit(EXIT_FAILURE);
}else{
AddTests();
CU_set_output_filename("TestMax");
CU_list_tests_to_file();
CU_automated_run_tests();
CU_cleanup_registry();
}
return 0;
}
-----------------------end--------------------------------
- CUnit在Linux下安装配置
- CUnit在Linux下安装配置
- CUnit在Linux下安装配置
- 在linux下安装CUnit
- ubuntu下安装cunit
- Linux 安装CUNIT
- CUnit-2.1-3在Linux系统上的安装
- linux 安装CUnit-2.1-3
- Windows下CUnit编译安装教程
- CUnit 安装
- Linux下C/C++的单元测试CUNIT
- subversion 在Linux 下的安装配置
- proftp在linux下安装配置指南
- Mongodb在Linux下安装及配置
- nutch在linux下的安装配置
- vnc在linux下得配置安装
- JDK在LINUX下的安装配置
- ACE 在linux环境下安装配置
- 1秒钟等于多少毫秒,等于多少微秒
- 将TabHost选项卡置于下方
- [面试]JSE JEE区别
- .net实现语音搜索(仅限WebKit内核浏览器)
- Windows上Maven3.x的安装
- CUnit在Linux下安装配置
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- 捕获链接文字的简单正则
- 自定义标签的开发及使用自定义标签实现迭代foreach循环
- PHP中SESSION和cookie的使用和区别
- 小错误引发大问题 clr_bit的使用
- PHP学习笔记
- 打印USB 设备热插拔的字符信息
- Cocos2d-x学习(二十):cocos2d中的容器CCArray