我应该在竹子里进行一些jbehave(自动)测试。一旦测试运行,我将生成一些junit兼容的xml文件,以便竹子可以理解相同的。所有jbehave测试都作为脚本的一部分运行,因为我需要在单独的显示屏幕中运行jbehave测试(请记住这些是自动浏览器测试)。示例脚本如下。
前:
export DISPLAY=:0 && xvfb-run --server-args="-screen 0, 1024x768x24"
mvn clean integration-test -DskipTests -P integration-test -Dtest=*
我还有一个junit解析器任务,它指向生成的junit兼容的xml文件。因此,一旦竹子构建运行,即使所有测试都通过,我也会得到红色构建,并显示“未找到失败的测试,可能发生编译错误。”
请在这方面帮助我。
答案 0 :(得分:15)
您的构建脚本可能会生成成功的测试报告,但您的任务中的一个(或两个)可能会失败。这意味着在测试完成后可能会发生故障。检查构建日志中是否有错误。您也可以尝试登录Bamboo服务器(作为竹子用户)并手动运行命令。
过去,当我们的测试任务在测试运行中途崩溃时,我看到过此消息,导致Bamboo忽略了一个格式错误的报告以及一堆成功的报告。
*检查构建日志以确保您的测试确实在运行。如果mvn clean没有清理测试报告目录,那么Bamboo可能只是在解析过时的测试报告。
编辑:(回应Kishore的链接)
杀死Xvfb似乎是导致构建失败的原因。
18-Jul-2012 09:50:18 Starting task 'Kill Xvfb' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script'
18-Jul-2012 09:50:18
Beginning to execute external process for build 'Functional Tests - Application Release Test - Default Job'
... running command line:
/bin/sh
/tmp/FUNC-APPTEST-JOB1-91-ScriptBuildTask-4153769009554485085.sh
... in: /opt/bamboo-home/xml-data/build-dir/FUNC-APPTEST-JOB1
... using extra environment variables:
<..snip (no meaningful output)..>
18-Jul-2012 09:50:18 Failing task since return code was 1 while expected 0
18-Jul-2012 09:50:18 Finished task 'Kill Xvfb'
你的“Kill Xvfb”脚本有什么作用?你在尝试像pkill -f“[x] vfb”这样的东西吗? pkill -f如果无法将表达式与任何进程匹配,则会静默返回非零值。
答案 1 :(得分:4)
我的解决方案是制作一个“脚本”任务:
#!/bin/bash
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0
始终以状态0退出。
这是因为当只发现1次编码违规(警告/错误)导致构建失败时,PHP代码嗅探器返回退出状态1。
答案 2 :(得分:3)
原来是一个简单的修复。
一般竹子行为是扫描整个日志并查看任何失败代码(1)。对于这个特定的配置,我有6个脚本,其中一个是杀死xvfb(帧缓冲区)。由于某种原因,服务器无法杀死xvfb并且该任务正在返回失败代码。因此,尽管所有测试都通过了,但是竹子从之前的任务中得到了这个错误代码之一,并且构建失败了。
目前的修复方法是删除杀死xvfb并且构建变为绿色的任务! \ o /.