2017-10-17 4 views
1

Jenkins 2.85 Pipeline ScriptJenkins NUnit Testergebnisse Analysator Pipeline Syntax

Ich versuche, das Testergebnis Analyzer einzurichten, so dass ich diese Berichte an eine E-Mail anhängen können. Eine TestResult.xml-Datei wird beim Ausführen meines Builds erstellt.

Ich habe versucht, die folgende Zeile in meiner Testphase läuft:

step([$class: 'NUnitPublisher', testResultsPattern: 'build\\TestResult.xml', debug: false, keepJUnitReports: true, skipJUnitArchiver:false, failIfNoResults: true]) 

Beispiel:

stage('Test: Check if IIS webApp ON') { 
bat 'C:/"Program Files (x86)"/NUnit.org/nunit-console/nunit3-console.exe screenShots/screenShots/bin/Debug/screenShots.dll' 
step([$class: 'NUnitPublisher', testResultsPattern: 'build\\TestResult.xml', debug: false, keepJUnitReports: true, skipJUnitArchiver:false, failIfNoResults: true]) 
    } 

Wie kann ich meine Tests erhalten auf Testergebnis Analyzer zeigen?

Außerdem möchte ich sicher sein, dass mein Code die Veröffentlichung der Testergebnisse verhindert. Muss ich die Veröffentlichung der "finally" -Zeile hinzufügen?

node { try { 
     notifyBuild('STARTED') 

    stage('Checkout') { 
    checkout([$class: 'SubversionSCM', 
     additionalCredentials: [], 
     excludedCommitMessages: '', 
     excludedRegions: '', 
     excludedRevprop: '', 
     excludedUsers: 'buildbot', 
     filterChangelog: false, 
     ignoreDirPropChanges: false, 
     includedRegions: '', 
     locations: [[credentialsId: 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx', 
      depthOption: 'infinity', 
      ignoreExternalsOption: true, 
      local: '.', 
      remote: "http://my.svn.repo.com/svn/apps/folder"]], 
     workspaceUpdater: [$class: 'UpdateUpdater']]) 
    } 

/* stage('Build webApp') {   
    bat 'C:/"Program Files (x86)/Microsoft Visual Studio"/2017/Community/MSBuild/15.0/Bin/MSBuild.exe webApp/webApp.sln /m /p:VisualStudioVersion=15.0' //msbuild  
}*/ 

stage('Build Selenium Tests') {   
    bat 'C:/"Program Files (x86)/Microsoft Visual Studio"/2017/Community/MSBuild/15.0/Bin/MSBuild.exe screenShots/screenShots.sln /m /p:VisualStudioVersion=15.0' //msbuild  
} 

stage('Test: Check if IIS webApp ON') { 
    bat 'C:/"Program Files (x86)"/NUnit.org/nunit-console/nunit3-console.exe screenShots/screenShots/bin/Debug/screenShots.dll' 

} 

} catch (e) { 
    // If there was an exception thrown, the build failed 
    currentBuild.result = "FAILED" 
    throw e 
    } finally { 
    // Success or failure, always send notifications 
    notifyBuild(currentBuild.result) 
    } 
} 

def notifyBuild(String buildStatus = 'STARTED') { 
    // build status of null means successful 
    buildStatus = buildStatus ?: 'SUCCESSFUL' 

// Default values 
    def colorName = 'RED' 
    def colorCode = '#FF0000' 
    def subject = "${buildStatus}: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'" 
    def summary = "${subject} (${env.BUILD_URL})" 

    // Override default values based on build status 
    if (buildStatus == 'STARTED') { 
    color = 'YELLOW' 
    colorCode = '#FFFF00' 
    } else if (buildStatus == 'SUCCESSFUL') { 
    color = 'GREEN' 
    colorCode = '#00FF00' 
    } else { 
    color = 'RED' 
    colorCode = '#FF0000' 
    } 

    // Send notifications 
    slackSend (color: colorCode, message: summary) 

    emailext subject: '$DEFAULT_SUBJECT', 
         body: '$DEFAULT_CONTENT', 
         recipientProviders: [ 
          [$class: 'CulpritsRecipientProvider'], 
          [$class: 'DevelopersRecipientProvider'], 
          [$class: 'RequesterRecipientProvider'] 
         ], 
         replyTo: '$DEFAULT_REPLYTO', 
         to: '$DEFAULT_RECIPIENTS' 
} 

Antwort

0

Durch das Hinzufügen des folgenden Code in meinem Schließlich Abschnitt begann es meine Testergebnisse aufzeichnen:

step([$class: 'NUnitPublisher', testResultsPattern: 'build\\TestResult.xml', debug: false, keepJUnitReports: true, skipJUnitArchiver:false, failIfNoResults: true]) 
Verwandte Themen