我该如何在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