vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

产品平台由stm32方案切换到arm9系列,底层隔离,应用层兼容。在keil下仿真,很多问题没有暴露出来,在linux下暴露无遗,而linux下调试相对来说复杂(例如空指针,在stm32上用keil调试,如果异常不明显,不会死机,linux下直接段错误),导致问题跟踪困难。故以项目为根基,采用vs2015调试源代码(非底层的应用部分),Unity框架编写单元测试用例,OpenCppCoverage可视化单元测试覆盖率。

  • vs2015 Update3版本

    1. 必须是Update3以上版本(OpenCppCoverage支撑)。获取路径(转载):

      https://blog.****.net/luckypeng/article/details/54342659

    2. 如果有安装过其他低版本的vs,先使用visual-studio-uninstaller完全卸载,工具路径:

    https://pan.baidu.com/s/1zAD6z5071C8Rm1kmjGy1pw

    1. windows xp不支持vs2015。
  • vs2015统一配置

    工具 -> 文本编辑器-> C/C++ ->高级,配置如下:

    vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

  • Unity

    相关工程已建立,使用时只允许调用unity.h里的宏,别的封装不允许调用。

  • OpenCppCoverage

    1. 在安装好vs2015后,工具->扩展和更新->联机->搜索OpenCppCoverage安装(网络接入)。

    2. 在编写好单元测试用例之后,可以运行OpenCppCoverage检查单元测试覆盖率。

    3. 运行单元测试项目:

      vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

      vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

    4. 单元测试运行如出现:

    vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

    则需要修改文件编码格式,统一修改为UTF-8,一次不行,来回反复修改。

  • 关于解决方案框架

    vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

    1. 源码app中,每一个文件夹对应一个单元测试项目,例如acsample—>test_acsample。
    2. 每一个单元测试项目框架,test目录用于构建单元测试测试用源码(src,test_src,test_mock,cfg…)

      vs2015 + Unity + OpenCppCoverage环境搭建(单元测试)

      1. src - 被测试的源码加载,原则上测试哪个部分,就加载哪个部分。如果调用无关文件,考虑文件耦合性,需解耦;
      2. test_mock - 测试打桩函数加载,用于模拟某些环境;
      3. test_src - 测试用例加载,src中有多少源码文件,相应的测试用例文件就有多少,文件名在源码文件名前加上test;
      4. 所有的测试用例之间应该解耦,故测试用例均在测试接口内部声明和定义;
      5. 频发错误LNK2019归集