2016-09-16 163 views
4

當我們基於瀏覽器的測試失敗時,我們會截取瀏覽器窗口以更好地說明問題。但是,我不明白如何將它們歸檔到我的管道中,因爲管道在失敗後停止。 junit.xml也一樣,我也想在錯誤的情況下使用它。Jenkins管道:如何在構建失敗時將工件歸檔?

我查過了,屏幕截圖會生成並正確存儲。

我的定義是這樣的(不相干的事情主要是修整):

node { 
    stage('Build docker container') { 
     checkout([$class: 'GitSCM', ...]) 
     sh "docker build -t webapp ." 
    } 
    stage('test build') { 
     sh "mkdir -p rspec screenshots" 
     sh "docker run -v /var/jenkins_home/workspace/webapp/rspec/junit.xml:/myapp/junit.xml -v /var/jenkins_home/workspace/webapp/screenshots:/myapp/tmp/capybara -v webapp bundle exec rspec" 
    } 
    stage('Results') { 
     junit 'rspec/junit*.xml' 
     archive 'screenshots/*' 
    } 
} 

回答

2

您可以使用簡單的Java try/catch避免測試失敗管道故障,或詹金斯catchError這樣的:

node { 
    catchError { 
     // Tests that might fail... 
    } 
    // Archive your tests artifacts 
} 
1

here開始,您可以在管線中使用郵政部分:

pipeline { 
    agent any 
    stages { 
     stage('Build') { 
      ... 
     } 
     stage('Test') { 
      ... 
     } 
    } 

    post { 
     always { 
      archive 'build/libs/**/*.jar' 
     } 
    } 
} 
相關問題