编写一个Jenkins共享库方法,该方法可以在管道中和单元测试中打印到控制台?

时间:2018-12-13 13:30:17

标签: jenkins groovy junit

我正在尝试在共享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 ,以便在管道内部运行和在单元测试下运行时都能成功打印到控制台/构建日志?

0 个答案:

没有答案