ctest に、デフォルトで失敗したテストの出力を表示してもらいたいです。つまり、実行したい:
$ make all test
失敗したテストの出力を確認する必要はありませんcat Testing/Temporary/LastTest.log
。
これを行うには、次の 2 つの方法があるようです。
(1)CTEST_OUTPUT_ON_FAILURE
環境変数の設定:
$ CTEST_OUTPUT_ON_FAILURE=1 make all test
$ # or CTEST_OUTPUT_ON_FAILURE=1 ctest
(2)呼び出しに--output-on-failure
フラグを指定する:ctest
$ ctest --output-on-failure
CMakeLists.txt ファイルを記述して、ctests が通常の「make all test」呼び出しでデフォルトで失敗したテストの出力をダンプするように、セッションで環境変数をグローバルにエクスポートしたり、カスタムターゲットに頼ったりすることなくmake check
(説明されているように) 書き込む方法はありますか?ここで)?
私はSET_TESTS_PROPERTIES()
コマンドを知っていますが、次のように試してみてください:
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")
実験では、テスト プログラムが実行されるシェルでは環境変数が設定されているが、ctest が実行されているシェルでは設定されていないことが示されています。