2017-09-06 88 views
1

我有一個帶有示例文本that is working on regex101的正則表達式,但在我的Jenkins管道場景中似乎不起作用。所以我假設我的管道腳本中有一個錯誤,但我沒有看到在哪裏。Jenkins管道正則表達式不匹配任何東西

這裏有一個攝製:

pipeline { 
    agent any 

    stages { 
     stage ('Test') { 
      steps { 
       script { 
        echo ("Test") 

        output = "Some text. \n\n 12 scenarios (3 failed, 2 success) plus text \n\n and some more text" 
        def hasSummaryMatch = (output ==~ /\d+ scenarios \([^()]+\)/) 

        echo ("hasSummaryMatch = " + hasSummaryMatch) 

        if (!hasSummaryMatch) { 
         error ("No summary!") 
        } 
       } 
      } 
     } 
    } 
} 

我已經與詹金斯2.60.2在官泊塢容器中運行測試這一點。

這提供了以下(略)輸出:

Started by user Administrator 
Running on master in /var/jenkins_home/workspace/Test001 
Test 
hasSummaryMatch = false 
ERROR: No summary! 
Finished: FAILURE 

預期的輸出是沒有錯誤因爲應該有一個匹配。

我在做什麼錯?

回答

2
  • 只是使用的=~代替==~

    def hasSummaryMatch = (output =~ /\d+ scenarios \([^()]+\)/) 
    
  • 當您使用==~

    表達~ /.../回報java.util.regex.Matcher

    ouptut == ~/.../檢查output等於匹配器

相關問題