use*_*582 33 email junit report jenkins
我收到错误"发现测试报告,但没有一个是新的.测试运行了吗?" 当试图通过电子邮件发送单元测试结果时.原因是我有一个专门的Jenkins作业,它将工件从测试作业导入到自身,并通过电子邮件发送测试结果.我这样做的原因是因为我不希望Jenkins在晚上发送所有开发人员的电子邮件:)所以我"邮寄"电子邮件发送,因为Jenkins本身不支持延迟电子邮件通知(遗憾的是).
但是,当"通过电子邮件发送测试结果"作业执行时,测试时间已经过了几个小时,我得到了问题标题中指定的错误.关于如何解决这个问题的任何想法?
Arm*_*and 59
您可以尝试将测试报告的时间戳更新为构建步骤("执行shell脚本").例如
cd path/to/test/reports
touch *.xml
Run Code Online (Sandbox Code Playgroud)
mvn clean test
Run Code Online (Sandbox Code Playgroud)
通过终端或詹金斯。这会生成新的测试报告。
另一个答案说cd path/to/test/reports touch *.xml对我不起作用,但mvn clean test是的。
更新上次修改日期也可以在gradle中实现:
task jenkinsTest{
inputs.files test.outputs.files
doLast{
def timestamp = System.currentTimeMillis()
test.testResultsDir.eachFile { it.lastModified = timestamp }
}
}
build.dependsOn(jenkinsTest)
Run Code Online (Sandbox Code Playgroud)
如上所述:http://www.practicalgradle.org/blog/2011/06/incremental-tests-with-jenkins/
这是Jenkinsfile(声明式管道)的更新版本:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make build'
}
}
stage('Test') {
steps {
sh 'make test'
script {
def testResults = findFiles(glob: 'build/reports/**/*.xml')
for(xml in testResults) {
touch xml.getPath()
}
}
}
}
}
post {
always {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35948 次 |
最近记录: |