我正在尝试在共享Jenkins库中编写一个groovy类 Sample.groovy ,该类在从我的Jenkinsfile中调用时以及在对 Sample进行单元测试时打印到控制台/构建日志中类。
我是第一种情况-运行管道时打印-我有:
Sample.groovy
import com.cloudbees.groovy.cps.NonCPS
class Sample implements Serializable {
def steps
Sample(steps) {
this.steps = steps
}
@NonCPS
public execute(String param) {
steps.echo "Calling method with parameter: $param"
}
}
在我的 Jenkinsfile
中@Library("my-shared-library") _
import com.samples.Sample
node('builder') {
stage ('demo') {
Sample sample = new Sample(this)
sample.execute("testing")
}
}
当我在Jenkins上运行管路时,效果很好。但这显然在我进行单元测试 Sample.groovy 时不起作用,因为在单元测试上下文中不知道steps.echo
。
是否可以实现 Sample.groovy ,以便在管道内部运行和在单元测试下运行时都能成功打印到控制台/构建日志?