Jenkins xunit:发布多个执行的gtest结果(不同的平台/配置) 背景
我有一个具有不同配置(不同的数据库引擎)的多平台项目(Win32/Win64/MacOS/Linux)。我在单个管道中运行测试(gtest和一些自制的东西)来验证代码 问题 测试结果以这样的方式发布,以至于很难区分测试在哪个平台上实际失败 有了一些东西,自制的结果将以xml JUnit格式导出,该工具将接收添加到xml中的额外参数,以便“测试结果”能够显示有关配置和平台的信息 对于gtest xml结果,默认情况下不可能合并此类信息,因此jenkins中的“测试结果”被合并,并且不可能在不检查日志的情况下在哪个平台上测试失败 问题: 有没有办法强迫Jenkins xUnit插件显示运行gtest的平台/配置 功能是否会将此类信息引入“测试结果” 我的詹金斯版本是Jenkins xunit:发布多个执行的gtest结果(不同的平台/配置) 背景,jenkins,googletest,Jenkins,Googletest,我有一个具有不同配置(不同的数据库引擎)的多平台项目(Win32/Win64/MacOS/Linux)。我在单个管道中运行测试(gtest和一些自制的东西)来验证代码 问题 测试结果以这样的方式发布,以至于很难区分测试在哪个平台上实际失败 有了一些东西,自制的结果将以xml JUnit格式导出,该工具将接收添加到xml中的额外参数,以便“测试结果”能够显示有关配置和平台的信息 对于gtest xml结果,默认情况下不可能合并此类信息,因此jenkins中的“测试结果”被合并,并且不可能在不检查日
2.121.3
笔记
我继承了詹金斯和混乱的管道。
目前(我尽可能多地清理了它)管道看起来或多或少像这样:
pipeline {
agent none
options {
timestamps ()
}
stages {
stage('Pull sources') {
steps {
script {
parallel(
'Win': {
...
},
'MacOS': {
...
},
'Linux': {
...
}
)
}
}
}
stage('Build') {
steps {
script {
parallel(
'Win': {
...
},
'MacOS': {
...
},
'Linux': {
...
}
)
}
}
}
stage('Run Tests') {
steps {
script {
parallel (
"Win MySql": {
node('win10-1') {
runAllTests('win_mysql')
xunit (
tools: [
JUnit(pattern: funtionalTestResults),
GoogleTest(pattern: unitTestResults)
]
)
}
},
"Win MicrosoftSql": {
node('win10-2') {
runAllTests('win_mssql')
xunit (
tools: [
JUnit(pattern: funtionalTestResults),
GoogleTest(pattern: unitTestResults)
]
)
}
},
'MacOS': {
node('MacOS') {
runClientTests('win_mssql')
xunit (
tools: [
JUnit(pattern: funtionalTestResults),
GoogleTest(pattern: unitTestResults)
]
)
}
},
'Linux': {
node('Linux') {
runAllTests('win_mssql')
xunit (
tools: [
JUnit(pattern: funtionalTestResults),
GoogleTest(pattern: unitTestResults)
]
)
}
},
failFast: false
)
}
}
}
}
}