创建第一个CPPUNIT测试项目
查阅了几十篇网文,经过了十多次失败,终于编译成功了。在这个过程中,深切的体会到网络的文章大多数都是语焉不详,或不够完整。有的甚至会引导你走些弯路。
在此记录下如何成功创建第一个cppunit项目,为所有cppunit的新来者提供参考。
一准备CPPUNIT的开发库
1. 到http://sourceforge.net/projects/cppunit/下载CppUnit测试框架的源代码, 解压文件(解压后位于:E:\自动化测试\cppunit-1.10.2),进入src文件夹,打开CppUnitLibraries.dsw.
2. 右键单击解决方案名称“CppUnitLibraries”,选择“重新生成解决方案”: 编译,输出位置为lib文件夹。
3. 在VC的工具-选项-项目和解决方案-VC++目录:
“包含文件”——增加“E:\自动化测试\cppunit-1.10.2\include”;
“库文件”——增加“E:\自动化测试\cppunit-1.10.2\lib”
4. 修改path环境变量,增加“E:\自动化测试\cppunit-1.10.2\lib”
二创建第一个基于CPPUNIT的测试项目“cppunit3”
1. 新建-项目-Visual C++-Win32-Win32控制台应用程序:
输入解决方案名称:cppunit3
位置:E:\自动化测试\cppunit
2. 在cppunit3.cpp中做以下修改:
1)在main函数前增加以下代码:
#include <cppunit/TestCase.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/TextOutputter.h>
class SimpleTest : public CppUnit::TestCase
{
public:
void runTest() // 重载测试方法
{
int i = 1;
CPPUNIT_ASSERT_EQUAL(0, i);
}
};
2)main的函数主体内容修改为:
CppUnit::TestResult r;
CppUnit::TestResultCollector rc;
r.addListener(&rc); // 准备好结果收集器
SimpleTest t;
t.run(&r); // 运行测试用例
CppUnit::TextOutputter o(&rc, std::cout);
o.write(); // 将结果输出
return 0;
三编译(F7)
编译时,出现“无法解析的外部符号”致命错误,解决办法
1.项目(Project)->属性(Properties)->配置属性(Configuration Properties)-> C/C++ -> 代码生成(Code Generation):
基本运行时检测(Basic Runtime Check)改为默认(Default);
缓冲区安全检测(Buffer Security Check)改为否(No);
2. 项目(Project)->属性(Properties)->配置属性(Configuration Properties)-> 连接器-> 输入:
附加依赖项:cppunitd.lib
编译中,还可能出现“无法识别的外部符合”致命错误,解决办法是将拷贝过去的代码的空格全部删除。原因是有的空格是全角格式,不能识别。
编译通过。
四运行:开始执行(不调试)
界面上出现
!!!FAILURES!!!
Test Results:
Run: 1 Failures: 1 Errors: 0
1) test: (F) line: 18 E:\CppUnitExamples\SimpleTest.cpp
equality assertion failed
- Expected: 1
- Actual : 0
与示例程序一致,项目调试成功!