創建第一個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
與示例程序一致,項目調試成功!