zoukankan      html  css  js  c++  java
  • 使用VS2008自带的单元测试组件来测试纯c++程序

        本文中的一些观点可能存在错误, 欢迎大家指正, 或者有更好的方法也欢迎交流.

        c++的单元测试方法一向很多, 比如cxxunit, googletest等等, 不过不知道是不是我的人品不太好, googletest我使用的时候一直出现了无法解析的外部符号, 就算是按照别人给出的方法(编译方式\MTd, 也找遍了网络) 还是不得其解, 只得作罢, 突然想起了VS2008还自带了一个单元测试的组件, 以前在使用c#的时候用过的.

        下面给我的方法和步骤, 可以对程序进行调试和单元测试.

        首先在Solution上面按右键, 选择添加项目, 然后选择测试项目, 项目名就随意了

        image

        然后设置需要进行单元测试的项目, 在我这里名字叫"Lucenecpp",  在项目的属性中选择"静态库lib"

        image

        下面就是对测试项目的设置了, 在测试项目上的属性中, 选择:

        image

        这里一定要记得将/clr:safe切换为/clr, 不然会出现一大堆诡异的错误.

        在测试项目的c++/常规/附加包含目录中, 把需要的头文件的目录以及被测试项目的头文件目录添加进去.

        image

        然后还需要在连接器中将附加库目录填写进去

        image

        在VS生成的项目文件中, 已经有了一个文件, 叫做UnitTest1.cpp, 在上面进行一些改动, 加入需要的头文件, 另外还要链接上库文件:

       1: #include "LCExternal.h";
       2: #include "FileStream.h"
       3:  
       4: #pragma comment(lib,"..\\lucenecpp\\debug\\lucenecpp.lib")

        这样在正确了设置了启动项目之后就可以进行单元测试了, 使用Assert::AreEqual就可以实现一些最简单的测试功能, 这里我就不对测试的部分进行过多的解释了, 这类的文章非常多的.

        最后要提醒一下, 如果对被测试的项目进行了改动后记得重新生成一下, 不然不能正常调试源代码的.

  • 相关阅读:
    vue系列---响应式原理实现及Observer源码解析(七)
    学习Lowdb小型本地JSON数据库
    渐进式web应用开发---Service Worker 与页面通信(七)
    webpack4核心模块tapable源码解析
    electron 创建托盘应用
    运维堡垒机开发
    使用Supervisord软件管理go服务进程
    安装Harbor之http版本
    Ubuntu 18 LTS netplan 网络配置
    用GO开发企业级分布式云存储系统
  • 原文地址:https://www.cnblogs.com/LeftNotEasy/p/1616003.html
Copyright © 2011-2022 走看看