CppUTest的安装
一 什么是CppUTest
CppUTest 是一个基于 C/C++ 的单元 xUnit 测试框架,用于单元测试和测试驱动代码。它是用C++编写的,但在C和C++项目中使用,并经常用于嵌入式系统,但它适用于任何C / C++项目。
CppUTest的核心设计原则是:
- 设计简单,使用简单。
- 可移植到新旧平台。
- 为测试驱动开发人员使用测试驱动开发进行构建。
二 安装CppUTest
2.1 预打包安装
Ubuntu:软件包可用于CppUTest。这是迄今为止最简单的安装方法,通过以下方式:
sudo apt-get install cpputest
include:
/usr/include/CppUTest
/usr/include/CppUTestExt
lib:
/usr/lib/x86_64-linux-gnu/libCppUTest.a
/usr/lib/x86_64-linux-gnu/libCppUTestExt.a
2.2 从源安装
您可以下载最新的“自动发布”版本:
- 通过构建的最新版本此版本在生成通过后自动打包。
或者,您可以克隆 github 存储库,只读:
git clone https://github.com/cpputest/cpputest.git
现在您已经有了 CppUTest 源代码,您可以使用您喜欢的构建工具(CMake 或 autoconf)构建它。
cd cpputest
./autogen.sh
./configure --prefix=/usr/local/cpputest
make
make install
2.3 配置环境变量
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/cpputest/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/cpputest/include
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cpputest/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cpputest/lib
2.4 测试是否安装成功
#include "CppUTest/CommandLineTestRunner.h"
#include "CppUTest/TestHarness.h"
#include <iostream>
int sum(int a, int b) {
return a + b;
}
TEST_GROUP(SumTestGroup) {
void setup() {
}
void teardown() {
}
};
TEST(SumTestGroup, TestSum) {
int result = sum(5, 10);
CHECK_EQUAL(15, result);
}
int main(int argc, char** argv) {
return CommandLineTestRunner::RunAllTests(argc, argv);
}
编译
g++ testcpp.cpp -o testcpp -lCppUTest -lCppUTestExt
结果
.
OK (1 tests, 1 ran, 1 checks, 0 ignored, 0 filtered out, 0 ms)
这个结果表示您运行了一个测试,并且测试通过。
以下是结果的意义解释:
- “1 tests”: 表示总共运行了一个测试。
- “1 ran”: 表示有一个测试被执行。
- “1 checks”: 表示测试中有一个检查点,即判断测试结果是否符合预期。
- “0 ignored”: 表示在测试过程中没有被忽略的测试。
- “0 filtered out”: 表示在测试过程中没有被过滤掉的测试。
- “0 ms”: 表示测试耗时,这里表示测试运行的时间为0毫秒。
综上所述,结果表明您的测试代码通过了一个检查点,并且测试成功运行并通过了预期结果。
三 将CppUTest与Visual Studio一起使用
您可以使用cmake或在Visual Studio IDE中构建CppUTest。
从Visual Studio IDE开始
根据您的VS版本,双击
- CppUTest_VS201x.sln - 适用于 VS 2010 及更高版本
- CppUTest.sln - 用于 VS 2010 之前
对建议的转化说“是”。选择与“不调试运行”对应的菜单项。CppUTest应该构建(可能带有警告)。生成完成后,测试运行器将运行。您应该看到超过 1000 个测试通过,没有测试失败。该构建还生成了一个静态库(cpputest/lib),其中包含可以将测试链接到的CppUTest。