Voglio che venga visualizzato di default il test non riuscito. Cioè, voglio correre:CMake: impostazione di una variabile ambientale per ctest (o altrimenti ottenimento dell'output di test fallito da ctest/make test automaticamente)
$ make all test
e vedere qualsiasi uscita di test falliti senza dover cat Testing/Temporary/LastTest.log
.
Sembra che ci sono due modi per farlo:
(1) Impostazione della CTEST_OUTPUT_ON_FAILURE
variabile d'ambiente:
$ CTEST_OUTPUT_ON_FAILURE=1 make all test
$ # or CTEST_OUTPUT_ON_FAILURE=1 ctest
(2) Specificare la bandiera --output-on-failure
al ctest
invocazione:
$ ctest --output-on-failure
C'è un modo per scrivere un file CMakeLists.txt tale che i test di ctests falliscono l'output di defaul t su una normale chiamata "make all test" SENZA ricorrere all'esportazione della variabile ambientale a livello globale nella sessione o ricorrere a un target personalizzato come make check
(come descritto here)?
Sono consapevole del comando SET_TESTS_PROPERTIES()
, ma cercare fuori in questo modo:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(testenv CXX)
ENABLE_TESTING()
ADD_EXECUTABLE(hello hello.cpp)
ADD_TEST(testhello hello)
# Following sets the environment variable for the shell in which the test
# progoram 'hello' is run, but not the shell in which ctest is run
SET_TESTS_PROPERTIES(testhello
PROPERTIES ENVIRONMENT "CTEST_OUTPUT_ON_FAILURE=1")
e sperimentare spettacoli che la variabile ambientale si trova nel guscio che il programma di test viene eseguito in, ma non nel Shell CTest viene eseguito in
Grazie. Ricetta utile! – Jeet
Grazie mille, esattamente quello che stavo cercando! Qualche idea sul perché non sia possibile modificare l'obiettivo 'test'? – lfxgroove
Il target 'test' è uno degli obiettivi predefiniti globali di CMake che non possono essere modificati. La configurazione del comando 'test' in hardcoded nella sorgente di CMake. – sakra