CMockery 简单熟悉
来源:互联网 发布:mac 数据作图软件 编辑:程序博客网 时间:2024/06/14 15:43
前一阵子在网上了解了CMockery测试模块,便决定自己去实测一下,其中过程有点小曲折,记录一下,也供大家参考:
环境:Ubuntu12.04
1、CMockery 下载:
在网站的资源绝大部分都是去google下载,良民一个,打不开网页。在其他地方找到了资源,并上传到本人的CSDN资源空间,可免费下载。
2、CMockery编译:
也是参照网上资源编译,可能是版本问题,发生错误。最后还是在CMockery Doc文档中找到了答案:
$ sudo apt-get -y install libtool make autoconf automake gcc
$ ./autogen.sh
$ ./configure
$ make
$ make
当然在configure时,我们可以加上自己的选项。
3、测试
也是采用网上的一个简单通用模块进行测试,中间小有插曲
代码如下:
/********math.c*********/
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
/********main.c*********/
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include <cmockery.h>
/* Ensure add() adds two integers correctly. */
void test_add(void **state) {
assert_int_equal(add(3, 3), 6);
assert_int_equal(add(3, -3), 0);
}
/* Ensure sub() subtracts two integers correctly.*/
void test_sub(void **state) {
assert_int_equal(sub(3, 3), 0);
assert_int_equal(sub(3, -3), 6);
}
int main(int argc, char *argv[])
{
const UnitTest tests[] = {
unit_test(test_add),
unit_test(test_sub),
};
return run_tests(tests);
}
编译:gcc -o main_test_run math.c main.c -I [安装头文件目录] -L [安装库目录] -lcmockery
[安装头文件目录]、[安装库目录]在你configure时指定,如果没有指定系统会默认安装到 /usr/include 和 /usr/lib 目录下,或者其他路径。
出现如下错误:
err1:
In file included from main.c:4:0:
/home/share/cmockery/Demo/include/cmockery/cmockery.h:19:40: fatal error: cmockery/cmockery_override.h: No such file or directory
way:
将你安装文件位置下的cmockery.h的20行,由 #include <cmockery/cmockery_override.h>
改为#include <cmockery_override.h>
err2:
/cmockery.h:402:1: error: unknown type name ‘uintmax_t’
way:
将你安装文件位置下的cmockery.h里,添加#include <stdint.h>
err3:
main.c:25:27: error: macro "run_tests" requires 2 arguments, but only 1 given
way:
在开发包里发现:
#define run_tests(tests, test_suite_name) _run_tests(tests, \
sizeof(tests) / sizeof(tests)[0], \
(test_suite_name))
修改main.c文件的return run_tests(tests)为return run_tests(tests, “run”);
重新编译ok,没问题。
导入CMockery库环境 export LD_LIBRARY_PATH=[安装库目录]:$LD_LIBRARY_PATH
$ ./main_test_run
[==========] Running 2 test(s).
[ RUN ] test_add
[ OK ] test_add
[ RUN ] test_sub
[ OK ] test_sub
[==========] 2 test(s) run.
[ PASSED ] 2 test(s).
[ FAILED ] 0 test(s).
[ REPORT ] Created run_xunit.xml report
终端显示了,测试结果。同样在当前文件下回生产run_xunit.xml文件,记录测试结果。文件如下
- CMockery 简单熟悉
- Spooling技术简单熟悉
- Cmockery中文手册[翻译]
- Hadoop的web页面....简单翻译一下,熟悉熟悉
- 熟悉
- 熟悉
- 熟悉
- 熟悉
- shell脚本学习之简单熟悉
- 对Android sqlite数据库的简单熟悉
- 简单Floyd php 实现 只为熟悉算法
- EntityFrameWork 从入门到熟悉(2)-简单增删改查
- linux新手需熟悉的简单vim操作
- 冒泡法,熟悉熟悉
- UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)
- google公布c语言轻量级单元测试工具Cmockery---初体验
- C单元测试框架——CMockery (1) 简介
- C单元测试框架——CMockery (2) 加减法demo
- linux下解压命令大全
- Unity3D-脚本编绎
- tq2440移植java虚拟机
- 关于纹理坐标
- 根据类名与列表返回table
- CMockery 简单熟悉
- 存储卡中各种文件夹用处
- 第十二周项目三(3):用递归函数求出两个数的最大公约数
- 第十二周 项目二 (2)分离正整数的各位数
- html+css+js系列之四 css的盒子模型
- Android中shape的使用
- 二叉树非递归建树
- 二叉树的建立和基本操作
- 项目管理的最高境界是管理好自己的人生