我該如何在Spock/groovy中做到這一點?Groovy Spock單元測試關閉
package org.jenkinsci.plugins
import hudson.matrix.*
import spock.lang.*
import org.junit.Rule
import org.jvnet.hudson.test.JenkinsRule
class xxxx extends Specification {
@Rule JenkinsRule rule = new JenkinsRule()
def 'matrix'() {
given:
def matrixProject = rule.createMatrixProject()
AxisList axl = new AxisList();
def axis = new TextAxis('TEST', "1", "2", "3")
axl.add(axis)
matrixProject.setAxes(axl)
expect: matrixProject.scheduleBuild2(0).get().logFile.text.contains("Some String!")
matrixProject.scheduleBuild2(0).get().getRuns().each(){
expect: it.logFile.text.contains("Another String")
}
}
}
具體來說,我該如何運行一個嵌套測試閉包? 「Another String」測試不起作用
這是一個,但它只運行到測試失敗,斷言它.logFile.text.contains(「測試/ 1」)'在第二次運行失敗,第三次不會被調用 – KeepCalmAndCarryOn
再次檢查我的答案,我添加了一些其他解決方案。也許有人會爲你的需要更好。 – topr
謝謝 - 我修正了原始問題的邏輯(需要一個setAxes,而不是axis.add() - 並且'every'的作品現在給出'不滿足條件: b.getRuns()。every(){it .logFile.text.contains(「TEST/1」)} | | | | | false | [test0 - 1#1,test0 - 2#1,test0 - 3#1] test0#1 ' – KeepCalmAndCarryOn