我正在通过 Jenkins 构建一个 Qt GUI 应用程序。我添加了 3 个构建步骤:
- 构建测试可执行文件
- 运行测试可执行文件
- 使用 gcovr 编译覆盖率报告
由于某种原因,运行测试可执行文件的 shell 任务在执行后停止。连简单的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
第一个构建任务末尾的 an 已正确打印,但echo
第二个构建任务末尾的 an 未正确打印。因此,第三个构建任务甚至没有运行,尽管 Google 测试输出是可见的。我认为问题可能在于某些 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