Keil中增加建筑自动化单元测试框架Unity

前言:

智慧城市时空大数量和云平台建设技术大纲(2017年8月版本)

  虽然有C++的自动化单元测试框架为会为此来C语言单元测试,但那样我们编辑C语言程序时欲符合C++的标准,这样产生一些C的风味是心有余而力不足使的,限制C的表征应用未极端好,于是找了一个任何于是C实现的自动化测试框架。Unity是一个简且直接的自动化单元测试框架,它由良少之几个文件构成。

葡京娱乐总站平台 1

搭建环境:  

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

安指针也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宏。

葡京娱乐总站平台 2

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

葡京娱乐总站平台 3

6.在keil中添加Unity源文件

葡京娱乐总站平台 4

7.导入头文件目录路径

葡京娱乐总站平台 5

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叫闹之链接

葡京娱乐总站平台 6

 

11.切换到SW模式

葡京娱乐总站平台 7

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

 葡京娱乐总站平台 8

13.根据examples中的测试文档编写测试用例,打开Debug(printf)
Viewer,运行的功力如下:

葡京娱乐总站平台 9