Keil中搭建自动化单元测试框架Unity

作者们在做什么样

不难易行地说,大家做的是蚂蚁金服的大数量解析平台。当中囊括面向 BI
的数据报表、数据解析、决策帮衬的成品,面向数据仓库的数量同步、ETL、职务调度、品质维持的产品。不仅在蚂蚁金服内部有着一种类的用户,而且随着蚂蚁金服的金融云产品提须求越来越多公司以外的用户,包蕴过多显赫的银行、保证、证券公司等。

前言:

咱俩须要如何的你

  • 全体扎实的 Java 语言功底,熟知主流的 Java 框架,精晓 JVM
    的骨干实现原理。
  • 负有系统架构能力,熟悉分布式系统、分布式缓存、高并发等主流技术。
  • 对大数额生态系统掌握。
  • 抱有美观的编码习惯,追求写高品质的代码。
  • 活泼于 github , stackoverflow 等社区,或享有技能博客者优先。

  尽管部分C++的自动化单元测试框架也能用来C语言单元测试,但那样大家编辑C语言程序时必要符合C++的正规化,那样有一对C的风味是无力回天使用的,限制C的表征应用不太好,于是找了3个全套用C完毕的自动化测试框架。Unity是2个总结且直接的自动化单元测试框架,它由很少的多少个文本构成。

笔者们能提供什么样

  • 为世界做出微小而美好的转移的空子
  • 16薪,年度期货合作选择权奖励
  • 和一群来自 谷歌(Google), Microsoft, Yahoo, Line
    等名牌国外公司的海归大牛们一块坐班的火候
  • 公积金(按上限缴纳),商业保证,无息住房贷款,餐补,免费班车 etc.

搭建环境:  

联系格局

请发送简历到
gaohangwang@gmail.com,笔者帮你内推,团队今天很缺人。

1.从github上下载最新版本的Unity源码,下载链接:https://github.com/ThrowTheSwitch/Unity

2.文件目录介绍

  src      
  那一个文件夹中隐含unity.c、unity.h、unity_internals.h,那是最宗旨的Unity组成,有了这八个公文你就能够开头编写制定测试用例了。

  docs      Unity相关的文书档案都在那

  examples    使用Unity的多少个例证,包罗宗旨使用、夹具使用、Ruby自动生成用例的应用

  extras     附加能够落到实处夹具的效益。

  test      Unity全体的测试

  auto      简化测试用例搭建的Ruby脚本

3.根据不一致对象平台来配置unity_config.h文件,笔者利用的是Cortex-m3,配置如下:

#define
UNITY_EXCLUDE_LIMITS_H

调用limits.h,
UINT_MAX和ULONG_MAX默认是32位

#define
UNITY_POINTER_WIDTH 32

设置指针为叁十四个人

#define
UNITY_INCLUDE_FLOAT

#define
UNITY_INCLUDE_DOUBLE

支持Float与Double类型

#ifdef
__GNUC__

 #define
UNITY_OUTPUT_CHAR(a)       __io_putchar(a)

#else     

 #define
UnityPutc(a)            fputc(a, stdout)

 #define
UNITY_OUTPUT_CHAR(a)       UnityPutc(a) 

#endif

Keil中armcc如若使用Gnu标准的话须求重定向到
__io_putchar不然是重定向到fputc。

#define
UNITY_WEAK_ATTRIBUTE __attribute((weak))

安装Unity中setup、teardown、suiteSetUp、suiteTearDown为弱函数如,果本人的工程中有setup函数Unity中自动失效而不会发出重定义问题。

实际以源码中牵线为准。

4.在Unity_Internals.h中添加UNITY_INCLUDE_CONFIG_H宏。

图片 1

5.在Unity.h中添加#include
<stdio.h>

图片 2

6.在keil中添加Unity源文件

图片 3

7.导入头文件目录路径

图片 4

8.有关在Debug(printf)Viewer打字与印刷音信方可参考链接:http://blog.csdn.net/burgesskzg/article/details/77100453

 

 

9.debug.c中对printf的重定向。

#ifdef __GNUC__
    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */
#else
    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */
PUTCHAR_PROTOTYPE
{
    BYTE c = (BYTE)ch;

    if (DEMCR & TRCENA) 
    {
        while (ITM_Port32(0) == 0)
        {
        }
        ITM_Port8(0) = c;
    }

    return ch;
}

10.修改ini文件,内容的编辑参照8交给的链接

图片 5

 

11.切换到SW模式

图片 6

12.基于处理器安装时钟以及打开ITM端口0

 图片 7

13.基于examples中的测试文书档案编写测试用例,打开Debug(printf)
Viewer,运维的功效如下:

图片 8

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图