2008-11-03 117 views
7

我有一個大型項目,我嘗試使用TDD。 我使用Tut作爲我的測試框架,它有缺陷,但足以滿足我的需求。在Visual Studio(TDD)中構建和運行C++單元測試

我需要利用鏈接時間測試接縫,每個測試必須在其自己的可執行文件。這個可執行文件的項目然後作爲後期構建步驟啓動。

不幸的是,這意味着我的Visual Studio Sln正在填充測試,這是不可擴展的,也隱藏了實際的重要項目。

有沒有人知道運行這些測試的更好方法? 是否可以從構建中隱藏項目並仍然構建它們?

+0

我以後升級了,解決方案文件夾的添加解決了這個問題。我可以把我的測試放在一個文件夾中。 – 2009-11-09 09:52:01

回答

4

「是否可以隱藏構建項目並仍然構建它們?」

您可以爲測試用例制定單獨的解決方案。 然後,您可以設置主項目的後期構建步驟。這個後期構建應該通過單獨的解決方案構建測試項目並運行它們。構建測試項目應該通過命令行完成(詳情請參閱here)。

如果你需要一些LIB-S從主要項目鏈接你的單元測試,你可以使用

#pragma comment(lib, "libname") 

詳見this MSDN page

+0

我喜歡創建單獨sln的想法,希望我可以讓它們共享obj文件。 – 2008-11-03 23:13:54

0

您可以嘗試在解決方案資源管理器的解決方案中將測試分組到文件夾中(它們是否稱爲過濾器?)。這會將測試與其他項目分開。但是,否則,您是否可以避免使用鏈接時間測試接縫(是的,我知道,它可能來不及提供此建議),並且使用多態性來提供運行時間變化並具有較少的測試項目?

0

不知道你是否還在尋找解決方案。但這裏有一個想法:

您可以將所有測試保存在一個庫中,並編寫一個自行生成並執行每個測試的應用程序。這樣你最終得到一個套件的一個可執行文件(因此也就是一個項目),每個測試就像一個單獨的可執行文件。

這實際上是在CUnitWin32中使用的機制。你甚至可以在這個框架中包裝你的測試。

相關問題