我正在嘗試驗證所有 Jenkins 管道,至少在一個組/組織中,都已發布了他們的 junit 測驗。有沒有辦法以編程方式做到這一點?此外,它會降級到 Jenkinsfiles 還是適用于所有管道?謝謝!
我可以通過在包含下面圖片的頁面上查找“測驗結果”來手動檢查這一點。這表明該作業已將測驗結果發布到 JUnit 插件。

如果我要撰寫一個 Jenkinsfile,它可能看起來像這樣。但也可以通過手動方法將這些附加到 JUnit 管道:
pipeline {
agent any
stages {
stage('Compile') {
steps {
// Login to Repository
configFileProvider([configFile(fileId: 'nexus_maven_configuration', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS compile'
}
}
}
stage('Test') {
steps {
configFileProvider([configFile(fileId: 'nexus_maven_configuration', variable: 'MAVEN_SETTINGS')]) {
sh 'mvn -s $MAVEN_SETTINGS test'
}
}
}
}
post {
always {
junit '**/target/surefire-reports/*.xml'
archive 'target/*.jar'
}
}
}
uj5u.com熱心網友回復:
這是一個腳本,您可以使用它來檢查您是否為特定子目錄中的作業附加了測驗。您可以通過管道或使用 Jenkins 腳本控制臺來運行它。
def subFolderToCheck = "folder1" // We will only check Jobs in a specific sub directory
Jenkins.instance.getAllItems(Job.class).each { jobitem ->
def jobName = jobitem.getFullName()
def jobInfo = Jenkins.instance.getItemByFullName(jobName)
// We will check if the last successfull build has any tests attached.
if(jobName.contains(subFolderToCheck) && jobInfo.getLastSuccessfulBuild() != null) {
def results = jobInfo.getLastSuccessfulBuild().getActions(hudson.tasks.junit.TestResultAction.class).result
println("Job : " jobName " Tests " results.size())
if(results == null || results.size() <= 0) {
print("Job " jobName " Does not have any tests!!!!!")
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497296.html
