我有一个Jenkins 2.0 Pipeline脚本,它运行两个独立的Robot测试套件。该脚本尝试发布两个测试套件结果,但是发布者使用最后一个发布覆盖了第一个发布。
node('robot') {
...
publishTestResults('journey')
publishTestResults('regression')
}
void publishTestResults(String type) {
step([
$class : 'hudson.plugins.robot.RobotPublisher',
outputPath : 'portfolio-app\\target\\robot-output\\' + type,
passThreshold : 100,
unstableThreshold: 100,
otherFiles : '',
reportFileName : '*\\report*.html',
logFileName : '*\\log*.html',
outputFileName : '*\\output*.xml'
])
}
在UI中,我们看到两个已发布的结果,但这两个集都是针对regression
测试用例的。最后一次发布获胜。
有没有办法可以发布两组机器人结果。
答案 0 :(得分:3)
这不会直接回答您的问题,但它可以解决您要完成的任务。
您可以使用rebot将两组Robot结果合二为一。然后只需发布合并的报告。关于如何合并报告,有很多关于rebot的选项。
答案 1 :(得分:1)
我使用了一种变通方法,即在执行所有测试集之后,我只发布一次结果。
输出文件和报告参数设置为** /。ext。
并不完美,但似乎可以正常工作-我有一个“机器人表”,并且报表,日志等都可以在子文件夹中访问。
stage('Smoke tests'){
steps {
bat('pybot --nostatusrc --outputdir ./robot_reports/smoke <other parameters>')
}
}
stage('E2E tests'){
steps {
bat('pybot --nostatusrc --outputdir ./robot_reports/e2e <other parameters>')
}
}
stage('Publish Robot results') {
steps {
script {
step(
[
$class : 'RobotPublisher',
outputPath : 'robot_reports',
outputFileName : "**/output.xml",
reportFileName : '**/report.html',
logFileName : '**/log.html',
disableArchiveOutput: false,
passThreshold : "${env.ROBOT_PASS_THRESHOLD}" as double,
unstableThreshold : "${env.ROBOT_UNSTABLE_THRESHOLD}" as double,
otherFiles : "**/*.png,**/*.jpg",
]
)
}
}
}