デフォルトで失敗したテスト出力を表示します。CMake:ctestの環境変数を設定する(あるいはctest/testからテスト出力を自動的に取得する)
$ make all test
をしてcat Testing/Temporary/LastTest.log
にせずに失敗したテストのいずれかの出力を参照してください。つまり、私が実行したいです。
これを行うには二つの方法があることが表示されます。
(1)CTEST_OUTPUT_ON_FAILURE
環境変数を設定する:
$ CTEST_OUTPUT_ON_FAILURE=1 make all test
$ # or CTEST_OUTPUT_ON_FAILURE=1 ctest
(2)ctest
呼び出しに--output-on-failure
フラグを指定:
$ ctest --output-on-failure
CMakeLists.txtファイルを作成して、ctestsダンプがdefaulによって出力されたテストに失敗するような方法はありますかセッション中に環境変数をグローバルにエクスポートするか、またはmake check
(hereのように)のようなカスタムターゲットに頼らずに、通常の「すべてのテストを行う」呼び出しを実行しますか?
私は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収録がで実行されるシェル
ありがとうございました。便利なレシピ! – Jeet
ヒープありがとう、ちょうど私が探していたもの!なぜ 'test'ターゲットを変更することができないのでしょうか? – lfxgroove
'test'ターゲットは、変更できないCMakeのグローバルデフォルトターゲットの1つです。 'test'コマンドの設定は、CMakeソースでハードコードされています。 – sakra