我正在为我的Jenkins groovy脚本编写junit测试.我正在测试的Jenkins脚本包含如下方法调用:

error "Foo"

当我try 从我的IDE(Intellij IDEA)运行测试时,我会遇到如下错误:

没有方法签名:静态xxx.error()适用于参数类型:(org.codehaus.groovy.runtime.GStringImpl)值[Foo]

所以我想,我需要在我的类路径中添加一些库,让运行时知道这个error函数.我试过这个maven依赖

        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-aggregator</artifactId>
            <version>2.5</version>
        </dependency>

但这没有帮助.

所以我很难找到哪个库包含这里描述的这些基本Jenkins工作流功能:https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps

有什么 idea 吗?

推荐答案

解决方案是使用Jenkins Pipeline Unit个库来生成所有这些函数/方法,如echoerror available and known to the pipeline context:

...
helper.registerAllowedMethod("echo", [String.class], null)
...

在这种情况下,每个测试都应该将我们试图测试的代码片段封装到一个小jenkins脚本中,该脚本将由JenkinsPipelineUnit引擎执行.

Java相关问答推荐

try Dockerize Maven应用程序,但发布版本21不支持"

OpenJDK、4K显示和文本质量

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

使用java访问具体子类特定方法的最佳方法是什么?

XPages-在第二次点击按钮之前延迟

获取字符串中带空格的数字和Java中的字符

更新GWT 2.5.1到2.11.0和sencha GXT 3.1.1到4.1时出现错误

安装Java Jar应用程序的Install4j遇到ClassNotFoundException的运行时错误

与Spring Boot相关的实体未正确保存

当Volatile关键字真的是必要的时候?

内存和硬盘中的Zip不同,这会导致下载后的Zip损坏

Java Telnet客户端重复的IAC符号

Spring Framework6.1中引入的新RestClient是否有适合于测试的变体,就像RestTemplate和TestRestTemplate一样?

Java嵌套流查找任意值

接受类及其接口的Java类型(矛盾)

Java System.getProperty在哪里检索user.home?

使用原子整数的共享计数器并发增量

java.util.LinkedList()是如何成为MutableList的实例的?

如何组合Mono和Flux

在外部类和内部类之间,当调用外部类内部或外部的主方法时,它们的静态初始化程序的运行顺序不同