wings通过编译数据库获取项目文件的编译参数。
针对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下的目前支持vs2015以上版本与Msys2+mingw的编译环境
安装星云测试提供的vs插件Sourcetrail.Extension.v2.0.3.130.vsix 双击安装之后,会在vs的菜单栏出现Sourcetrail,选择Create Compilation Database,生成对应源程序的complie_command.json文件
qt中包含有生成自带的编译数据库的文件,在编辑->Generate Copmliation Database for “工程”
编译数据库:项目的编译参数文件
用户项目路径:被测源程序的根目录
不处理文件路径:不参与测试的文件
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的操作步骤生成对应的代码与值文件。
编译生成的代码与源代码。