簡體   English   中英

如何從jenkins控制台使用groovy腳本捕獲第二個字符串

[英]How to capture second string using groovy script from jenkins console

我需要在jenkins作業上配置rspec測試用例的運行次數。 以下是測試運行后jenkin控制台中條目的格式。

3 examples, 0 failures

 6 examples, 0 failures

如上圖所示,我們在控制台中有兩次這樣的輸入(因為運行了2個ruby腳本)。 因此,在所有運行之后,完成構建后,我需要捕獲條目並在jenkins的“構建歷史”中顯示的工作中顯示。

因此,現在要捕獲以上計數,我在詹金配置的groovy Postbuild中使用以下groovy腳本。 但是它只是從jenkins控制台中選擇字符串的第一個匹配項:

    matcher = manager.getLogMatcher("(.*) examples, (.*) failures")
if(matcher != null && matcher.matches()) {
    totalTests = matcher.group(1)
    failedTests = matcher.group(2)
    description += "<br/>UI Tests: total: ${totalTests}, Fail: ${failedTests}"
}

我要如何從jenkins控制台中獲得2、3rd匹配項:

您也可以嘗試使用build.getLog(int maximumLines),然后使用正則表達式解析輸出。 例如:

def buildLog = manager.build.getLog(10) // you might need to change the amount of maximum lines
def group = (buildLog =~ /(\d+) examples, (\d+) failures/ )
for(int i=0; i<group.size();i++) {
    manager.createSummary("info.gif").appendText("examples: ${group[i][1]}, failures: ${group[i][2]}", false)
}

在這種情況下,結果將添加到每個構建信息中。

暫無
暫無

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

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