簡體   English   中英

當JUnit測試失敗時,Mark Gradle在Jenkins中構建不穩定

[英]Mark Gradle build unstable in Jenkins when JUnit tests fail

我在Jenkins中使用了各種JUnit測試的Gradle構建,這些測試作為構建的一部分執行。 現在,當某些測試失敗時,整個構建被標記為失敗 - 因為Gradle說構建失敗了。

我怎樣才能說服Gradle成功構建,然后Jenkins將構建標記為不穩定? 用螞蟻這根本不是問題。

在測試任務中使用ignoreFailures屬性。

apply plugin: 'java'
test {
     ignoreFailures = true
}

您可以使用外部屬性來解決此問題。

if (!ext.has('ignoreTestFailures')) {
  ext.ignoreTestFailures = false
}

test {
  ignoreFailures = project.ext.ignoreTestFailures
}

在此設置中,默認情況下,失敗將導致構建失敗。 但是如果你像這樣調用Gradle: gradle -PignoreTestFailures=true test那么測試失敗不會使構建失敗。 因此,您可以將Jenkins配置為忽略測試失敗,但在開發人員手動運行測試時使構建失敗。

您可以將其包含在main build.gradle中,以應用於所有項目和所有測試任務。

allprojects{
    tasks.withType(Test) {
        ignoreFailures=true;
    }
}

由於在我的情況下無法使用忽略失敗的測試,因此我發現了以下內容。 如果您使用的是腳本化的jenkins文件。 可以將測試階段包裝在try-catch語句中。

try {
 stage('test') {
  sh './gradlew test'
 } 
} catch (e) {
  echo "Test FAILED"
}

這將捕獲gradle拋出的構建異常,但它將構建標記為不穩定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM