Jenkins管道和Robot Framework结果

时间:2017-08-07 12:49:11

标签: jenkins robotframework jenkins-pipeline

我必须实现一个Pipeline并试图找到一种方法,如何在Jenkins Pipeline中发布Robot Framework结果。 我发现multiple questions关于将Robot Framework插件实现到Pipeline中,并且发现this question似乎是解决方案。但是我尝试过这种方法,结果仍然缺失。

有解决方法或功能示例吗?

3 个答案:

答案 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"
        ]
      )
    }  
  }
}