使用@Grab的Jenkins管道共享库中断了Spock测试

时间:2018-09-19 03:01:32

标签: jenkins groovy jenkins-pipeline spock

我尝试按照此处的“使用共享库扩展”说明将第3方库添加到我的管道共享库代码中:

https://jenkins.io/doc/book/pipeline/shared-libraries

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body onload="rvalue()">

<div class="containerr">
    
<div id="container" style="margin-bottom:10%">

<div class="box"  ondrop="drop(event)" ondragover="allowDrop(event)" id="10"><p name="values"></p></div>

<div class="box"  ondrop="drop(event)" ondragover="allowDrop(event)" id="11"><p name="values"></p></div>

<div class="box"  ondrop="drop(event)" ondragover="allowDrop(event)" id="12"><p name="values"></p></div>

            </div>
</div>



    
<div class="box002" draggable="true" ondragstart="drag(event)" id="2">

         <img src=""  draggable="true" id="slide" style="width:30px; height:30px; border-radius: 50%;" border="rounded"/>
        
</div> 
</body>

此操作失败,找不到IvySettings类。在另一个StackOverflow帖子之后:

Getting Class Not Found: org.apache.ivy.core.report.ResolveReport when using GroovyClassLoader in Java

我必须将其添加到我的pom.xml中:

@GrabResolver(name='custom', root='http://my.nexus/maven')
@Grab("com.packageA.serviceA:artifactA:1.0.0")

import com.packageA.serviceA.ClassA

我克服了IvySettings找不到问题。但是我所有的Spock单元测试都针对我要为其添加@Grab的类进行测试,但失败了

    <dependency>
        <groupId>org.apache.ivy</groupId>
        <artifactId>ivy</artifactId>
        <version>2.4.0</version>
    </dependency>

这些测试使用GroovyMock和GroovySpy。

有没有人让Grab与Spock的GroovyMock / Spy一起工作?

1 个答案:

答案 0 :(得分:0)

我试图在src / com / packageA / serviceA中的非PSL代码上添加@Grab,即:不在var / *下。

根据Jenkins文档,@ Grab仅适用于管道共享库代码。

我通过使用@Grab一个管道共享库函数来解决此问题,并从src / com / packageA / serviceA中的非PSL代码调用了此函数。