0


使用CPPUnit执行C/C++单元测试

使用CPPUnit执行C/C++单元测试

1、下载CPPUnit

官方地址如下:CppUnit - C++ port of JUnit download | SourceForge.net

https://sourceforge.net/projects/cppunit/

进入官方地址后,首页如下:

在这里插入图片描述

点击 【Download】下载即可。

本次项目用了【cppunit-1.13.2.rar】包。

在这里插入图片描述

2、CPPUnit使用

①、 CPPUnit结构

目录结构如下:

在这里插入图片描述

进入到

cppunit

目录后,可以看到如下目录结构:

  • config: 配置文件目录;
  • doc: 相关文档目录,需要通过doxygen工具生成,也可以从sourceforge等网站下载打包好的文档;
  • contrib: contribution,大家贡献的外围代码;
  • examples: 示例代码目录;
  • include: 头文件目录;
  • lib: 存放编译好的库文件;
  • src: 源文件目录,存放源文件及编译库的工程等。

②、 CPPUnit编译

进入到

cppunit/src

目录下,用 vs2013/vs2015/vs2017/vs2019等工具打开

CppUnitLibraries

工程,配置编译参数后开始编译工程,编译成功后,生成的库文件将被拷贝到

lib

目录下。 我们也可以根据需要选择所需的项目进行编译,其中生成目录

Debug

为静态库(

cppunit

),

DebugDll

为动态库(

cppunit_dll

)。生成的库文件说明:

  • cppunit.lib: 静态库release版;
  • cppunitd.lib: 静态库debug版;
  • cppunit_dll.dll/cppunit_dll.lib: 动态库release版;
  • cppunitd_dll.dll/cppunitd_dll.lib: 动态库debug版;如果生成win32x64版本的库,只要设置vs工具的编译类型,然后重新编译即可。使用过程中,我们把生成的CPPUnit库文件拷贝到对应的Lib目录中即可

vs2013/vs2015/vs2017/vs2019 等打开

cppuint

工程文件。

在这里插入图片描述

配置管理器,选择【x64】平台。

在这里插入图片描述

编译过程中,如果出现 **

"error MSB3073:命令"

** 错误,则通过 项目的属性->配置属性->生成事件->后期生成事件->命令行 ,设置正确的路径即可。

错误示例

在这里插入图片描述

在这里插入图片描述

修改配置

删除对应命令行,手动拷贝就可以。

在这里插入图片描述

将编译好的

CPPUnit

打包。

在这里插入图片描述

③、 CPPUnit概念

在使用

CPPUnit

之前,先简单介绍下

CPPUnit

中的主要类,如果熟悉

CPPUnit

则跳过本部分内容。

**

CPPUnit

核心内容主要包括如下六个方面**

  • 测试对象(Test,TestFixture,…): 用于开发测试用例,以及对测试用例进行组织管理;
  • 测试结果(TestResult): 处理测试用例执行结果,TestResult与下面的TestListener采用的是观察者模式(Observer Pattern);
  • 测试结果监听者(TestListener): TestListener作为TestResult的观察者,担任实际的结果处理角色;
  • 结果输出(Outputter): 将结果进行输出,可以制定不同的输出格式;
  • 对象工厂(TestFactory): 用于创建测试对象,对测试用例进行自动化管理;
  • 测试执行体(TestRunner): 用于运行一个测试。

3、 执行单元测试

①、 创建项目

创建 Visual Studio项目,并设置

CPPUnit 

包含、引用路径。

在这里插入图片描述

设置包含路径。

在这里插入图片描述

设置引用库目录。

在这里插入图片描述

②、 编写用例

这里简单列举一个

cppunit

单元测试。

// TestCaseDemo.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include "cppunit/TestCase.h"
#include "cppunit/TestResult.h"
#include "cppunit/TestResultCollector.h"
#include "cppunit/TextOutputter.h"

/*---------------------------------------------------------------------
 *                       定义测试用例;  
 *--------------------------------------------------------------------*/
class SimpleTestCase :public CppUnit::TestCase
{
public:
    void runTest();  //重载基类测试方法;

};

void SimpleTestCase::runTest()
{
    int iValue = 1;
    CPPUNIT_ASSERT_EQUAL(0, iValue);          //验证参数值是否等于零;
}

/*---------------------------------------------------------------------
 *                      入口函数;
 *--------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
    CppUnit::TestResult result;
    CppUnit::TestResultCollector resultcollecter;
    result.addListener(&resultcollecter);      //设置结果收集器;

    SimpleTestCase test;
    test.run(&result);

    CppUnit::TextOutputter output(&resultcollecter, std::cout);
    output.write();      //标准输出打印结果;

    system("pause");
    return 0;
}

③、 运行效果

在这里插入图片描述

在这里插入图片描述

4、 CPPUnit入门指导

可以阅读 《CppUnitCookbook中文版.pdf》 手册,可以快速上手

CppUnit

使用。

在这里插入图片描述


本文转载自: https://blog.csdn.net/mageriletu2012/article/details/140723533
版权归原作者 码村长 所有, 如有侵权,请联系我们删除。

“使用CPPUnit执行C/C++单元测试”的评论:

还没有评论