我必须实现一个Pipeline并试图找到一种方法,如何在Jenkins Pipeline中发布Robot Framework结果。 我发现multiple questions关于将Robot Framework插件实现到Pipeline中,并且发现this question似乎是解决方案。但是我尝试过这种方法,结果仍然缺失。
有解决方法或功能示例吗?
答案 0 :(得分:6)
[编辑反映成功的解决方法]
This comment on the issue tracker shows a workaround that seems to work:
step([
$class : 'RobotPublisher',
outputPath : outputDirectory,
outputFileName : "*.xml",
disableArchiveOutput : false,
passThreshold : 100,
unstableThreshold: 95.0,
otherFiles : "*.png",
])
但是,Robot Framework Plugin目前似乎与Pipeline不完全兼容:https://issues.jenkins-ci.org/browse/JENKINS-34469
这在Jenkins生态系统中的many plugins很常见,但尚未更新以与新的Jenkins管道兼容。 You could potentially create the full compatibility yourself though,如果你有足够的动力。
答案 1 :(得分:0)
我使用了另一个答案中提到的解决方法,但是它不会像非pipline作业一样显示作业的结果,所以我创建了由pipline作业触发的自由式项目,只是复制结果文件然后运行分析。这是非常苛刻的,并且不会在节点之间移植,工作数量可能会随着时间的推移而变得混乱,因此相关性可能会很棘手。在这一点上,我将调查使用通用工件存储或完全摆脱机器人。
答案 2 :(得分:0)
我无法使用上面给出的答案,导致出现错误;但我能够弄清楚并添加到管道中。如果其他人遇到相同的问题,这是我的解决方法:
stage('Tests') {
steps {
echo 'Testing...'
script {
step(
[
$class : 'RobotPublisher',
outputPath : '<insert/the/output/path>',
outputFileName : "*.xml",
reportFileName : "report.html",
logFileName : "log.html",
disableArchiveOutput : false,
passThreshold : 100,
unstableThreshold : 95.0,
otherFiles : "*.png"
]
)
}
}
}