2014年9月28日 星期日

C++單元測試(5) - 再用VS2010先試一下: 如何使用CppUnit

終於繼續了!
接續上一篇,我們試著使用了VC6編譯之後,我們這次用了cppUnit官方建議VS版本第二個 - VS2010。

如同VC6那篇一樣,先介紹成功案例的整個專案的規劃與設定吧!

專案檔與檔案之間的設定

一樣UnitTest是獨立在開發專案外的另一個專案。
(此專案是由空專案開始,加上.cpp和.h)

程式碼

接下來的程式碼與前一篇相同,在此就不綴述。
(一模一樣唷!)

設定專案檔屬性

最後,設定專案檔,如何使用CppUnit的檔案。
因為與VC6的介面大不同,而且從VS2003(有這一版嗎?)之後幾乎就是長這樣(只有些許的不同),在此講一下,適用滿多版本的。

在UnitTest專案檔上按右鍵→屬性
出現專案屬性設定頁面,在此可以點選上一層視窗的專案檔,設定值會跟著載入唷!
所以,看見這個頁面時請確認你的專案檔是否有點在UnitTest的專案上。

.h檔路徑

先設定要#include 的.h檔路徑
在「其他 Include 目錄」中填上.h檔路徑

lib檔的路徑

再設定link時期要找得到的lib檔的路徑
在「其它程式庫目錄」中填入.lib的路徑

lib檔的檔案名稱

再設定link時期要找得到的lib檔的檔案名稱
在此要注意,這一版的VS要用分號隔開唷!VS2005好像就是用空白隔開...
(不確定的話,可以靠tool設定,它會自動幫你加)
在「其他相依性」中填入.lib檔的檔名(這個就不知道翻譯的在幹什麼吃的了)

執行

設定UnitTest為Active Project就可以「以Unit Test為主」
在IDE按下編譯→執行,就可以看見Unit Test的執行結果報告了!^^


可能會遇到的問題

接下來,我們來聊一下一些途中可能會遇到的問題。
這也是為什麼這次拖這麼久才貼這一篇,是有原因的!

如果只是灌好VS2010直接編譯,編譯出這三個項目,會....算是滿順利的了。
cppunit.lib
cppunitd.lib
cppunit_dll.lib

頂多出現warning C4251
不過,官方有說這個不用理它也可以。(實驗之後發現,真的可以耶!)

error LNK1123
再之後就會開始卡關,出現問題。
LINK : fatal error LNK1123: 轉換成 COFF 時失敗: 檔案無效或損毀
這個問題,查了一下
http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval

發現,建議灌sp1!
vs2010還有sp1唷?微軟是不是什麼都要來個sp1呀?那以後微軟的東西都不用太早買了。(本來就...)
之後就一路順利的編譯到底!


另外,關於這個部份,竟然還有教學影片耶!有興趣的朋友,就跟著它一步一步做吧!(我還是建議升級到sp1唷)

沒有留言:

張貼留言