2013-05-01 42 views
6

我有一個使用CMake生成的Visual Studio 2012 C++解決方案,其中我使用谷歌測試進行單元測試。這工作大多好,但在我的一個測試中,我想從本地目錄讀取設置文件。要找到我的文件複製從我的源代碼樹中的後生成步驟生成的文件,並使用以下CMake的安裝目錄命令:Visual Studio中谷歌測試的工作目錄

install(FILES ./adapters/settingFile.txt DESTINATION .) 
add_custom_command(TARGET testAdapters POST_BUILD 
    COMMAND "${CMAKE_COMMAND}" -E copy 
    "${CMAKE_CURRENT_SOURCE_DIR}/adapters/settingFile.txt" 
    "${CMAKE_CURRENT_BINARY_DIR}" 
    COMMENT "Copying elastix parameter files") 

也能正常工作:建立我的測試後settingFile.txt是與testAdapters.exe位於同一位置。右鍵單擊testAdapters項目並啓動調試會話也可以查找。

但是,如果我選擇從「測試資源管理器」窗口內運行測試,可以通過「全部運行」或右鍵單擊測試並選擇「運行選定的測試」,測試無法找到settingsFile.txt。通過右鍵單擊並選擇「調試選定的測試」,我發現從「測試瀏覽器」運行測試的工作目錄默認爲visual studio程序目錄:C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE。我能想到的幾種可能的解決方案,但不知道如何實現這一點:

  1. 設置「測試資源管理器」的工作目錄
  2. 設置每個測試可執行
  3. 工作目錄設置所有谷歌測試的工作目錄
  4. 使用CMake設置一些定義,指向用戶指定的位置並在測試代碼中使用它。 (我認爲這是一個相當難看的解決方案)

我需要一個獨立於平臺的解決方案。有人知道如何實現(1)或(2)或者你知道更好的解決方案嗎?

回答

0

與當前版本的GTA的0.12.3你至少可以達到(1):

  1. 工具
  2. 選項
  3. 谷歌測試適配器(或使用搜索選項)
  4. 一般
  5. 工作指南(底部)

不幸的是G TA似乎只支持$(ExecutableDir)(默認)和$(SolutionDir)。看來GTA不能告訴哪個項目是單元測試項目,所以不可能使用項目目錄作爲開始目錄。

Screenshot of GTA options dialog