我正在通過Jenkins構建一個Qt GUI應用程序。我加了3個構建步驟:Jenkins構建腳本在Google Test執行後退出
- 構建測試可執行
- 運行測試可執行
- 編譯具有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
未打印。因此,即使Google Test輸出可見,第三個構建任務也不會運行。我認爲可能問題在於某些Google測試失敗,但爲什麼腳本只是因爲測試失敗而停止執行呢?
也許有人可以給我一個關於爲什麼第二個任務停止的提示。
編輯
控制檯輸出看起來是這樣的:
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
優秀的答案,我真的沒有想到每個可能的命令可能會停止腳本的可能性。謝謝! – dasmaze
希望我可以upvote你10次。這很多! – nolazybits
@zeflasher,你總是可以給我一個賞金的答案;) – Slav