产品教程
获取编译数据库

wings通过编译数据库获取项目文件的编译参数。

Linux下编译数据库的生成

针对makefile的工程,星云测试提供安装的bear的安装包,按照步骤操作即可。安装bear https://github.com/rizsotto/Bear(bear所需python>2.7)

针对cmake工程,设置-DCMAKE_EXPORT_COMMANDS=ON即可,会在对应的build目录下生成compile_commands.json文件

类似的其他生成编译数据库的方式,可以参考
https://sarcasm.github.io/notes/dev/compilation-database.html

Windows下编译数据库的生成

windows下的目前支持vs2015以上版本与Msys2+mingw的编译环境

安装星云测试提供的vs插件Sourcetrail.Extension.v2.0.3.130.vsix 双击安装之后,会在vs的菜单栏出现Sourcetrail,选择Create Compilation Database,生成对应源程序的complie_command.json文件

qt中包含有生成自带的编译数据库的文件,在编辑->Generate Copmliation Database for “工程”

Wings操作步骤
项目路径设置

编译数据库:项目的编译参数文件

用户项目路径:被测源程序的根目录

不处理文件路径:不参与测试的文件

c/c++:被测语言

构建单元测试流程

项目路径设置完成之后,在对应的编译数据库文件路径下自动生成一个文件夹wingsprojects,包含对应的文件夹如下:


在功能操作菜单中,依次操作 代码静态分析->驱动代码生成->测试用例生成,即可完成构建单元测试过程。


命令行操作流程

(1)代码静态分析

./Wings.sh -a <compile_commands.json path> <src folder path>

(2)驱动生成

-d <compile_commands.json path> <src folder path> <src is c++ or c>

(3)测试用例生成

-e <compile_commands.json path> <src is c++ or c>

(4)参数捕获

-c <compile_commands.json path> <src folder path> <src is c++ or c>

特殊模板赋值

在模板设置界面,左上角已经分析出了代码中存在的系统模板,左下角是需要用户手动进行配置的模板类,右键即可添加删除,在这里我手动添加了一个FILE*的模板,进行配置,配置好之后点击提交,然后进行驱动生成,驱动代码中FILE赋值部分就会使用配置的代码。

测试用例

(1)下载leveldb-master

https://github.com/google/leveldb

(2)新建leveldb_build文件夹,用cmake生成对应的vs版本,打开.sln文件,生成编译数据库文件。

(3)打开wings.exe,参照2的操作步骤生成对应的代码与值文件。

编译生成的代码与源代码。