Jenkins 経由で Qt GUI アプリケーションを構築しています。3 つのビルド手順を追加しました。
- テスト実行可能ファイルのビルド
- テスト実行可能ファイルの実行
- gcovr を使用してカバレッジ レポートをコンパイルする
何らかの理由で、テスト実行可能ファイルを実行するためのシェル タスクが実行後に停止します。シンプルでも追いかけecho
ません。テストは Google Test で作成され、xUnit XML ファイルが出力され、ビルド後に分析されます。一部のテストではアプリケーションのユーザー インターフェイスが起動するため、jenkins xvnc プラグインをインストールして実行できるようにしました。
ビルド タスクは次のとおりです。
建てる
cd $WORKSPACE/projectfiles/QMake
sh createbin.sh
テスト
cd $WORKSPACE/bin
./Application --gtest_output=xml
取材レポート
cd $WORKSPACE/projectfiles/QMake/out
gcovr -x -o coverage.xml
これでecho
、最初のビルド タスクの最後に が正しく出力されますがecho
、2 番目のビルド タスクの最後に出力されません。したがって、Google Test の出力は表示されますが、3 番目のビルド タスクは実行されません。おそらく問題は Google テストの一部が失敗することだと思いましたが、テストが失敗したという理由だけでスクリプトの実行が停止するのはなぜでしょうか?
2番目のタスクが停止する理由について、誰かがヒントをくれるかもしれません。
編集
コンソール出力は次のようになります。
Updating svn://repo/ to revision '2012-11-15T06:43:15.228 -0800'
At revision 2053
no change for svn://repo/ since the previous build
Starting xvnc
[VG5] $ vncserver :10
New 'ubuntu:10 (jenkins)' desktop is ubuntu:10
Starting applications specified in /var/lib/jenkins/.vnc/xstartup
Log file is /var/lib/jenkins/.vnc/ubuntu:10.log
[VG5] $ /bin/sh -xe /tmp/hudson7777833632767565513.sh
+ cd /var/lib/jenkins/workspace/projectfiles/QMake
+ sh createbin.sh
... Compiler output ...
+ echo Build Done
Build Done
[VG5] $ /bin/sh -xe /tmp/hudson4729703161621217344.sh
+ cd /var/lib/jenkins/workspace/VG5/bin
+ ./Application --gtest_output=xml
Xlib: extension "XInputExtension" missing on display ":10".
[==========] Running 29 tests from 8 test cases.
... Test output ...
3 FAILED TESTS
Build step 'Execute shell' marked build as failure
Terminating xvnc.
$ vncserver -kill :10
Killing Xvnc4 process ID 1953
Recording test results
Skipping Cobertura coverage report as build was not UNSTABLE or better ...
Finished: FAILURE