cmocka的学习(1)

目录

  • cmocka
    • cmocka介绍
    • 学习任务
    • 实践(1)
    • 疑惑(接下来需要学习的内容)

cmocka

cmocka介绍


cmocka 是一个优雅的C语言单元测试框架,它支持对象的mock。只依赖于标准C库。
可以支持不同的计算机平台和不同的编译器。

cmocka的官网

学习任务

  • 在PC上实现样例测试
  • 在Cortex-M系列MCU中运行

这两个任务主要有两个学习目标

  • 熟悉cmocka中cmake的配置与编写(阅读/理解cmake源码)
  • 熟悉如何使用cmocka编写PC端的模拟测试和MCU实际平台测试(重点)

实践(1)

接下来在Windows 10 的环境下编译和初步测试cmocka。这里需要提前做的准备有:

  • 安装visual studio 2019,可以选择社区版
  • 安装LLVM(clang)的windows版本,LLVM会依赖于visual studio
  • 安装cmake
  • 安装ninja

下载并解压最新版cmocka的源码包

解压后的目录如下:
cmocka的学习(1)_第1张图片
在该目录下新建一个build目录,并在build目录下打开命令行。
cmocka的学习(1)_第2张图片
使用下面几条命令分别测试cmakeclangninja是否成功安装

cmake --version

如果可以正常输出版本号,表示cmake安装成功。截图如下:
cmocka的学习(1)_第3张图片

clang --version

cmocka的学习(1)_第4张图片

ninja --version

在这里插入图片描述

如果上面上个软件都正常安装,接下来可以编译cmocka库和它的一些测试程序了。

首先使用

cmake -G"Ninja" ..\

生成ninja的构建文件,命令执行情况如下(部分截图):
cmocka的学习(1)_第5张图片
接下来使用命令

ninja -j8

来编译cmocka的库和测试的可执行文件,执行结果截图如下:
cmocka的学习(1)_第6张图片
其中比较多的警告,这里先不管。

然后使用下面的命令来将cmocka生成的库文件安装到指定的目录(这里先不解释具体安装到了那个目录)

ninja install

cmocka的学习(1)_第7张图片
然后执行测试程序

ninja test

cmocka的学习(1)_第8张图片

这样在PC上的一些编译工作就做完了。

这个过程还是比较简单的。但是过程中我还存在一些疑惑,在接下来的学习中需要解决。疑惑有:

疑惑(接下来需要学习的内容)

  • cmake生成了一个 config.h 文件,生成这个文件的cmake文件是如何编写的?如果更换到其它编译器这个文件会配置成什么样子?
  • 如何将编译器设置为交叉编译器?如MDK的armcc、armclang或者GNU的arm-none-eabi-gcc
  • 如何编写测试程序?测试程序如何加入到测试,然后执行ninja test就自动回执行响应的测试代码?
  • ninja install是否可以由于打包发布程序?如何修改cmake文件实现?

你可能感兴趣的:(C语言单元测试,嵌入式,单元测试)