2013-05-01 90 views
1

我的項目具有許多基於Googletest的單元測試,即繼承testing::Test的類。項目中的每個源文件文件夾都有這些類所在的子文件夾test/跳過所有Googletest單元測試類的編譯

我希望用戶能夠移除對Googletest的依賴關係。什麼是最簡單的方法來做到這一點? Googletest是否提供一些支持?

一種可能的解決方案是引入預處理器變量NOUNITTESTS。當定義這個時,在編譯過程中會跳過取決於Googletest的所有源代碼。但是,我是否可以避免通過所有的測試課程並通過#ifndef NOUNITTESTS圍繞它們?

回答

3

我不明白爲什麼用戶依賴於您的項目單元測試。

正常情況下,當你編譯你的二進制文件或庫時,你的目標是編譯這個二進制文件和完全不同的目標來編譯單元測試。這樣你的用戶永遠不會依賴你的單元測試。

如果您使用makefile - 只需爲單元測試製作單獨的目標。

如果您使用Visual Studio - 只需在單元測試的解決方案中創建單獨的項目。

無論如何,單元測試不是發佈產品的一部分。例如,您的項目可能有像clean,compile,install,test這樣的目標。除非用戶運行test目標,否則不會依賴GTest