1019.单元测试工具CUnit
单元测试工具
- 1 CUnit 单元测试工具的安装
- 2 关于cunit编译成第3库添加到eclipse中使用
- 3 cunit示例demo
- 4 展示效果
- 5 CUnit 的交叉编译
- 6 参考博客
1 CUnit 单元测试工具的安装
- 借鉴博客
cunit在linux的安装
2 关于cunit编译成第3库添加到eclipse中使用
- 参考博客,里面有详细介绍
eclipse添加第3方库
3 cunit示例demo
- 通常用法
使用CUnit框架的典型步骤是:
编写待测函数(必要时,还得编写套件的 init/cleanup 函数)。
初始化测试注册表(Test Registry) - CU_initialize_registry()
将套件(Suite)添加到测试注册表 - CU_add_suite()
将测试用例(Test)加到套件里 - CU_add_test()
调用合适的接口函数执行测试,例如CU_console_run_tests
清除测试注册表 - CU_cleanup_registry
/*============================================================================Name : cunit_test_demo.cAuthor : xhomeVersion :Copyright : Your copyright noticeDescription : Hello World in C, Ansi-style============================================================================*/#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "CUnit/CUnit.h"
#include "CUnit/Basic.h"
#include "CUnit/Automated.h"//加法函数
int add_func(int a, int b)
{return a+b;
}
//除法函数
double div_func(int a, int b)
{if(b == 0){printf("b is 0.");return -1;}return a/b;
}
//开辟空间
char * malloc_func(int size)
{char * p = NULL;p = (char *)malloc(size * sizeof(char));if(p == NULL){return NULL;}return p;
}//add case
void add_func_case(void)
{int expectValue = 0;expectValue = 9;CU_ASSERT_TRUE(expectValue == add_func(4, 5));expectValue = 11;CU_ASSERT_TRUE(expectValue == add_func(10, 1));
}
//div case
void div_func_case(void)
{int retValue = 0;retValue = 2;CU_ASSERT_TRUE(retValue == div_func(10,5));retValue = 3;CU_ASSERT_TRUE(retValue == div_func(9,3));retValue = -1;CU_ASSERT(retValue == div_func(9,0));
}//div case
void malloc_func_case(void)
{//可以使用专门的指针地址测试函数CU_ASSERT(malloc_func(-1) == NULL);CU_ASSERT(malloc_func(1024) != NULL);
}//init
int cunit_test_init(void)
{return 0;
}
//cleanup
int cunit_test_cleanup(void)
{return 0;
}// test casesCU_TestInfo cunit_test_case[] = {{"add_func_case", add_func_case},{"div_func_case", div_func_case},CU_TEST_INFO_NULL,};// test cases
CU_TestInfo cunit_ptr_case[] = {{"malloc_func_case", malloc_func_case},CU_TEST_INFO_NULL,
};// suiteCU_SuiteInfo suites[] ={{ "Test demo", cunit_test_init, cunit_test_cleanup, NULL, NULL, cunit_test_case },{ "Test demo1", cunit_test_init, cunit_test_cleanup, NULL, NULL, cunit_ptr_case },CU_SUITE_INFO_NULL,};int main(void) {puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */if(CUE_SUCCESS != CU_initialize_registry()){printf("<CUnit Test> CU_initialize_registry fail!!!\n");return CU_get_error();}if(CUE_SUCCESS != CU_register_suites(suites)){printf("<CUnit Test> CU_register_suites fail!!!\n");CU_cleanup_registry();return CU_get_error();}#if 1//output file.xmlCU_set_output_filename("cunit_test_demo");CU_list_tests_to_file();CU_automated_run_tests();#endifCU_basic_set_mode(CU_BRM_VERBOSE);CU_basic_run_tests();CU_cleanup_registry();return EXIT_SUCCESS;
}
4 展示效果
5 CUnit 的交叉编译
./configure --host=arm-linux --prefix=/home/xxx/opt_soft/cunit_arm_install CC=/home/xxx/petalinux2018.3/tools/linux-i386/aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
make
make install
6 参考博客
cunit中文手册
1019.单元测试工具CUnit相关推荐
- 开源单元测试工具汇总
开源单元测试工具/框架汇总 作为开源软件的爱好者,了解了单元测试这概念后,自然忍不住去找找有什么开源单元测试工具. 下面列出了30款1,不分先后顺序. 1. NoSQL的单元测试工具 NoSQLUni ...
- Openstack_单元测试工具 tox
目录 目录 扩展阅读 Openstack 的单元测试工具 单元测试工具使用流程 tox toxini 参考文章 扩展阅读 Python Mock的入门 Openstack 的单元测试工具 unitte ...
- 在.NET开发中的单元测试工具之(1)——NUnit
NUnit介绍 NUnit是一个专门针对于.NET来写的单元测试框架,它是xUnit体系中的一员,在xUnit体系中还有针对Java的JUnit和针对C++的CPPUnit,在开始的时候NUnit和x ...
- python 单元测试 工具_Django单元测试工具test client使用详解
The test client test client是一个python类,来模拟一个简单的"哑"浏览器,允许你来测试你的view函数.你可以使用test client完成下列事情 ...
- SAP UI5 初学者教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...
- SAP UI5 应用开发教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍
Jerry 在之前做 SAP UI5 标准开发和现在使用 Angular 开发 SAP Spartacus 应用时,我们团队的开发规范就是,每增添一个新的前端 feature,必须要用一个新增的单元测 ...
- 常见单元测试工具介绍
1. C/C++语言开发的首选利器- C++Test 以前在windows平台下的开发,使用的框架主要是MFC,以及console工程(基于win32SDK),属于纯C/C++开发的范畴. ...
- 说实话,写了这么多程序了,还从来没有用JUnit作为单元测试工具测试过,今天就来学习一下
1. 说实话,写了这么多程序了,还从来没有用JUnit作为单元测试工具测试过,心理面感到真的是惭愧.原来的所有测试,我都是通过在控制台打印输出语句看结果,这样就可以根据自己打印的信息自己去判断, ...
- 使用单元测试工具TestDriven.NET调试程序
文本Tag: TestDirector 单元测试 测试工具 .NET [IT168 技术文档] 引言 在实际的项目中,我们会遇到如下的问题: 1. 在编写一些不太好调试的程序时,如WebService ...
最新文章
- 下载和安装Nginx之配置选项
- Redis运行流程源码解析--转载
- C++中的hash_map和map的区别
- navicat连接mysql闪退_Navicat连接MySQL时报10060及1045错误及my.ini位置问题
- 10.static_extern
- 在Windows下编译zlib1.2.5
- Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation
- Expression Blend实例中文教程(3) - 布局控件快速入门Grid
- mysql删除重复记录语句的方法
- 重装mysql 失败_重装MySQL最后一步失败的解决办法
- Postman的测试脚本(一)
- 微信小程序tabbar美化(中间图标突起)
- 独立站运营必知:关于聊天机器人的十大好处
- Mybatis事务失效的几种情况
- 什么是bcd码数据传输通讯_数据传输 数据通讯
- 统信UOS系统安装mysql_统信UOS系统手动安装分区方案
- 行频、场频与分辨率、刷新率
- Hdmi 和vga 接口有什么区别?
- css 拉伸 resize —— 实现可拉伸的div(含限制拉伸的尺寸)
- 1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知
热门文章
- python怎么加载库_Python库如何安装和导入
- android流量显示插件,[android]仿360状态,种流量监控桌面浮动显示
- python使用virtualenv在本地新建虚拟环境
- LGBM模型取消打印日志(关闭日志)
- python list转dict
- python pandas 判断是否为空“nan”
- c语言二维数组总成绩,c语言5个人3科成绩总分和平均分,用二维数组
- python中if语句最多支持的分支是_Python多分支if语句的使用
- 字符串在Python中的本质是一个序列。 数字类型不是序列,不是可迭代对象,只能看做一个整体不可分割...
- 解决:无法将文件“obj\x86\Debug\Windows123.exe”复制到“bin\Debug\Windows123.exe”。