我是詹金斯的新手并且不确定我是否正确地表达了这个问题,所以让我展示一下这个问题的例子。
我有一个运行sh命令的步骤,该命令使用单元测试启动python脚本。 我正在Linux上工作,也喜欢手动使用这个脚本,所以我硬编码了JUnit报告的路径。 Jenkins使用与我相同的Linux(或几乎相同的)在docker环境中运行其构建
这就是我运行脚本的方式
stage("test")
{
dir('root')
{
sh 'python3 Test.py'
}
}
现在我想获得测试结果并保存它们:
stage("test")
{
dir('root')
{
sh 'python3 Test.py'
}
junit allowEmptyResults: false, keepLongStdio: true, testResults: '/tmp/results.xml'
archiveArtifacts allowEmptyArchive: false, artifacts: '/tmp/results.xml'
}
我的脚本成功地将结果保存到此路径中,并且Jenkins在控制台中编写了“记录测试结果”和“#39;但到目前为止还没有显示任何测试结果。
我使其成功的唯一方法是:
stage("test")
{
dir('root')
{
sh 'python3 Test.py'
sh 'cp /tmp/results.xml Results/results.xml'
junit allowEmptyResults: false, keepLongStdio: true, testResults: '**/Results/results.xml'
archiveArtifacts allowEmptyArchive: false, artifacts: '**/Results/results.xml'
}
}
有谁能建议我在这里做错了什么?