Keil中搭建自动化单元测试框架Unity葡京娱乐总站平台

咱俩在做什么样

回顾地说,咱们做的是蚂蚁金服的大数目解析平台。在那之中囊括面向 BI
的数据报表、数据解析、决策援救的制品,面向数据仓库的数据同步、ETL、职务调度、品质维持的产品。不仅在蚂蚁金服内部装有多重的用户,而且随着蚂蚁金服的金融云产品提要求越来越多集团以外的用户,包含过多响当当的银行、保证、证券集团等。

前言:

咱俩需求什么的你

  • 装有扎实的 Java 语言功底,熟稔主流的 Java 框架,精通 JVM
    的主导完结原理。
  • 全体系统架构能力,熟习分布式系统、分布式缓存、高并发等主流技术。
  • 对大数额生态系统熟谙。
  • 持有不错的编码习惯,追求写高性能的代码。
  • 活跃于 github , stackoverflow 等社区,或持有技能博客者优先。

  就算某个C++的自动化单元测试框架也能用来C语言单元测试,但这样大家编辑C语言程序时供给符合C++的规范,那样有一些C的特色是不可能使用的,限制C的风味应用不太好,于是找了2个总体用C完成的自动化测试框架。Unity是1个简短且直接的自动化单元测试框架,它由很少的多少个文件构成。

笔者们能提供什么样

  • 为世界做出微小而美好的转移的火候
  • 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

安装指针为30人

#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