2013-05-01 13 views
6

Ho una soluzione di Visual Studio 2012 C++ generata utilizzando CMake in cui utilizzo google test per i test delle unità. Funziona molto bene, ma in uno dei miei test voglio leggere un file di impostazioni da una directory locale. Per trovare il file copio il file come una fase di post costruire dal mio codice sorgente albero per la compilazione e la directory di installazione utilizzando il seguente CMake comandi:Directory di lavoro per google test in 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") 

Questo funziona bene: dopo aver costruito la mia prova del settingFile.txt è nella stessa posizione di testAdapters.exe. Trova un clic con il tasto destro del mouse sul progetto testAdapters e l'avvio di una sessione di debug.

Tuttavia, se si sceglie di eseguire il test dalla finestra "Esplora test", in "Esegui tutto" o facendo clic con il pulsante destro del mouse sul test e scegliendo "Esegui test selezionati", il test non riesce a trovare settingsFile.txt. Facendo clic con il pulsante destro del mouse e scegliendo "Debug test selezionati", ho scoperto che eseguendo il test da "Test Explorer" la directory di lavoro si posiziona automaticamente nella directory del programma Visual Studio: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE. Mi vengono in mente diverse soluzioni possibili, ma non so come raggiungere questo obiettivo:

  1. Impostare la directory di lavoro per il "Test Explorer"
  2. Impostare la directory di lavoro per ogni file eseguibile di prova
  3. Impostare il directory di lavoro per tutti i test di google
  4. L'utilizzo di CMake imposta alcuni che puntano a una posizione specificata dall'utente e la utilizzano nel codice di prova. (Considero questa una soluzione piuttosto brutta)

Ho bisogno di una soluzione che sia indipendente dalla piattaforma. Qualcuno sa come ottenere (1) o (2) o conosci una soluzione migliore?

risposta

0

Con la versione corrente 0.12.3 di GTA si può almeno ottenere (1):

  1. Strumenti
  2. Opzioni
  3. Test Adapter Google (o usare opzioni di ricerca)
  4. generale
  5. Directory di lavoro (nella parte inferiore)

Sfortunatamente G TA sembra supportare solo $(ExecutableDir) (impostazione predefinita) e $(SolutionDir). Sembra che GTA non possa sapere quale progetto è il progetto di test unitario, quindi non è possibile utilizzare la directory del progetto come directory di avvio.

Screenshot of GTA options dialog

Problemi correlati