我正在为Jenkins Pipeline Shared Groovy Library中使用的代码实施单元测试。特别是,我需要模拟Jenkins文件中可用的steps
对象,它是org.jenkinsci.plugins.workflow.cps.DSL
的一个实例。在我的Gradle构建中,我已经指定了依赖项,如下所示:
testCompile group: 'org.jenkins-ci.plugins.workflow', name: 'workflow-cps', version: '2.30', ext: 'jar'
这是托管上述课程的项目。如果不将ext
指定为JAR,Gradle将检索.hpi
文件,因为这是项目的pom.xml中定义的包装;显然我需要覆盖它并为我的项目获取JAR。但是,在执行此操作时,Gradle不会下载workflow-cps
JAR的传递依赖项,并且我发现自己必须使用通过反复试验确定的所有依赖项来填充我的build.gradle。有没有办法检索传递依赖项,或者这是workflow-cps项目的限制以及它如何定义其pom.xml?
答案 0 :(得分:0)
您想要模拟的CPS课程不会包含插件或工作流程库引入的方法/变量,因此这种方法可能不会令人满意。
面对同样的挑战,我采取了务实的方法,在我的测试源和Mock中创建自己的TestScript接口,而不是在类中键入脚本引用。
缺点是没有对引用脚本的东西进行IDE代码检查,并且在添加测试时必须手动将签名添加到TestScript(这也很容易出错,因为我手动确保这些签名匹配)。
但是它有效,并且避免被拖入插件依赖地狱。