Integration testing 所有的测试都通过了,但是Bambol build失败了,并声明;没有发现失败的测试,可能发生编译错误。”;

Integration testing 所有的测试都通过了,但是Bambol build失败了,并声明;没有发现失败的测试,可能发生编译错误。”;,integration-testing,bamboo,jbehave,Integration Testing,Bamboo,Jbehave,我应该用竹子做一些jbehave(自动)测试。测试运行后,我将生成一些与junit兼容的xml文件,以便Bambor能够理解这些文件。所有jbehave测试都作为脚本的一部分运行,因为我需要在单独的显示屏上运行jbehave测试(请记住,这些是自动浏览器测试)。示例脚本如下所示 例: 我还有一个junit解析器任务,它指向生成的junit兼容xml文件。因此,一旦竹构建运行,即使所有测试都通过,我也会得到红色构建,并显示消息“未找到失败的测试,可能发生编译错误” 您的构建脚本可能正在生成成功的测

我应该用竹子做一些jbehave(自动)测试。测试运行后,我将生成一些与junit兼容的xml文件,以便Bambor能够理解这些文件。所有jbehave测试都作为脚本的一部分运行,因为我需要在单独的显示屏上运行jbehave测试(请记住,这些是自动浏览器测试)。示例脚本如下所示

例:

我还有一个junit解析器任务,它指向生成的junit兼容xml文件。因此,一旦竹构建运行,即使所有测试都通过,我也会得到红色构建,并显示消息“未找到失败的测试,可能发生编译错误”


您的构建脚本可能正在生成成功的测试报告,但您的一个(或两个,可能)任务失败。这意味着失败可能是在测试完成后发生的。检查生成日志中的错误。您还可以尝试登录到竹服务器(作为竹用户)并手动运行命令

我在过去看到过这个消息,当时我们的测试任务在测试运行的中途崩溃,导致一个错误的报告被Bambor忽略,还有一堆成功的报告

*检查构建日志以确保测试确实正在运行。如果mvn clean没有清除测试报告目录,Bambol可能只是在解析过时的测试报告


编辑:(回应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'
18-Jul-2012 09:50:18正在启动“com.atlassian.bambol.plugins.scripttask:task.builder.script”类型的任务“杀死Xvfb”
2012年7月18日09:50:18
开始执行构建“功能测试-应用程序发布测试-默认作业”的外部流程
... 正在运行的命令行:
/垃圾箱/垃圾箱
/tmp/FUNC-APPTEST-JOB1-91-ScriptBuildTask-4153769009554485085.sh
... 输入:/opt/bambol home/xml data/build dir/FUNC-APPTEST-JOB1
... 使用额外的环境变量:
2012年7月18日09:50:18任务失败,因为返回代码为1,而预期为0
2012年7月18日09:50:18完成任务“杀死Xvfb”

你的“杀死Xvfb”脚本是做什么的?你在尝试类似pkill-f“[x]vfb”的东西吗?如果pkill-f无法将表达式与任何进程匹配,它会自动返回非零。

这是一个简单的解决方案

一般行为是扫描整个日志,查看是否存在任何故障代码(1)。对于这个特定的配置,我有6个脚本,其中一个脚本用于杀死xvfb(帧缓冲区)。由于某种原因,服务器无法杀死xvfb,该任务返回了一个失败代码。因此,尽管所有的测试都通过了,但是竹从以前的任务中得到了一个错误代码,构建失败了


当前的修复方法是删除杀死xvfb的任务,构建变成绿色\o/

我的解决方案是制作一个“脚本”任务:

#!/bin/bash
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0
它始终以状态0退出


这是因为PHP代码嗅探器在只发现1个编码冲突(警告/错误)时返回退出状态1,这将导致生成失败。

chover,感谢您的回复。我没有看到任何可能的错误,从我的竹任务。肯定有一些堆栈跟踪是由我的应用程序引起的。请查看buil和日志以了解更多详细信息。抱歉,评论框中没有足够的空间发布日志输出,因此我最终编辑了我的帖子--请参见上文^Wow,这正是我在回复您的评论时所做的。太棒了!非常感谢您抽出时间查看日志输出:)这正是@choover在回复您的评论时所说的。tsc tsc tsc tsc您应该在该回复上签名作为正确答案。同样的解决方案在我们的Windows构建服务器上也适用于我。必须使用管道作为出口,而不是新线,否则在运行karma之后,出口0不会总是被调用!
#!/bin/bash
/usr/local/bin/phpcs --report=checkstyle --report-file=build/logs/checkstyle.xml --standard=PSR2 ./lib | exit 0