问题标签 [jenkins-spock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
658 浏览

jenkins - 在测试管道代码时验证 Jenkins 调用

我正在编写一个 Jenkins 管道库,并且在模拟/验证现有的 Jenkins 管道步骤时遇到了一些困难。

我正在使用homeaway 的 jenkins-spock进行单元测试,但我认为我的问题与 Spock 相关。

这是我的单元测试。我试图说 writeFile 是用与 logFileText 内容匹配的文本调用的,而忽略了其他参数是什么。我尝试了许多组合,但似乎总是对以下响应得到相同或相似的响应:

这是为了测试这个类

我不知道如何验证这个电话。我在 Java 和 Junit 方面有很多经验,但我对 Spock 比较陌生。

我该如何验证这一点?

0 投票
1 回答
71 浏览

jenkins-groovy - Jenkins Spock 测试因 java.lang.NoSuchMethodError 失败:com.google.common.collect.Sets

JenkinsPipelineSpecification基于测试失败并出现错误:java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;

0 投票
1 回答
433 浏览

spock - java.lang.AbstractMethodError 在为我的 SPOCK 测试实现 Spock-Reports 扩展 (renatoathaydes)

我对 SPOCK 很陌生,所以如果这是一个愚蠢的问题,请原谅。我已经在基于 Maven 的 Spock-Groovy 项目中完成了报告设置,如下面的 git-hub 项目中所述 - https://github.com/renatoathaydes/spock-reports

我所做的是——

  1. 在我的 POM 中添加了以下 3 个 Mvn 依赖项:

    com.athaydes spock-reports 2.0-RC2 测试 * * org.slf4j slf4j-api 1.7.30 测试 org.slf4j slf4j-simple 1.7.30 测试
  2. 将报告 Config.groovy 添加到 src/test/groovy 路径如下 -

    spockReports { // 一次性设置所有属性 set( [ 'com.athaydes.spockframework.report.showCodeBlocks': true, 'com.athaydes.spockframework.report.outputDir': 'target/spock-reports' ] ) }

现在按照上面的 git 指令结果,应该在我的 target/spock-reports 目录中使用 index.html 生成,但是在运行测试时我遇到了异常。无法理解我该怎么做才能修复此错误!

我还尝试更改为上述依赖项的最新版本,即2.0.0-alpha1,但没有帮助:( 注意:但是在上述两个更改之前一切正常。

线程“主”java.lang.AbstractMethodError 中的异常:接收器类 com.athaydes.spockframework.report.internal.SpockReportsConfiguration 未定义或继承已解析方法抽象 getProperty(Ljava/lang/String;)Ljava/lang/ 的实现目的; groovy.lang.GroovyObject 接口。在 org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:190) 在 groovy.lang.Closure.getPropertyTryThese(Closure.java:313) 在 groovy.lang.Closure.getPropertyOwnerFirst(Closure.java:307) 在groovy.lang.Closure.getProperty(Closure.java:296) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty( AbstractCallSite.java:309)

任何帮助将不胜感激。提前致谢。

0 投票
1 回答
166 浏览

groovy - 如何在 spock 测试中将任意文本写入控制台?

在编写测试时,我有时只想将文本写入控制台以进行调试。

如何在 spock 测试中执行此操作?我尝试使用记录器,但它抛出了一个错误:

0 投票
1 回答
134 浏览

jenkins-pipeline - Jenkins-spock:方法存根失败取决于平台

这是我编写的一段(简化的)代码和相关的单元测试,直到最近我都对此感到高兴。

文件 vars/deleteFile.groovy

文件 vars/toto.groovy:

文件测试/vars/TotoSpec.groovy:

该测试过去在我的本地机器和 CI 从站上都通过了。但是,我不知道为什么,这在我的本地机器上开始失败(但不是在从属机器上):

因此,我对我的单元测试执行了以下更新,但我不确定是否deleteFile真的是一个管道步骤,因为它没有主体/闭包。

文件测试/vars/TotoSpec.groovy:

现在单元测试在我的本地机器上正常,但在 CI 从站上失败:

我错过了什么?

本地配置:

CI 从站配置:

pom.xml 中的依赖项

0 投票
0 回答
84 浏览

jenkins - Jenkins spock:模拟 http-request-plugin 的 httpRequest

在我的共享库的某个地方,我得到了一个像这样的帮助类:

我正在尝试像这样测试所述类:

我正在使用 gradle 并且我的build.gradle文件有

其他步骤的测试运行完美,但我总是得到这个

当我使用时,explicitlyMockPipelineStep('httpRequest')我得到一个空指针异常,因为我认为默认的模拟返回一个空值。

我在测试中是否缺少任何东西以使其正常工作?提前致谢!!!

0 投票
0 回答
89 浏览

jenkins - 使用 Spock 和 jenkins-spock 模拟 Jenkins 内部函数

我想要做的是创建一个返回模拟的方法模拟,这样我就可以测试一个类的以下disconnectNode 方法。我试图模拟的是 getJenkinsNode 方法中的 getNode 和 toComputer 调用。

但是,我还没到。我正在尝试弄清楚为什么我不能让一个模拟返回另一个模拟。

使用jenkins-spock和 Spock 我设法做了以下测试规范,只是为了试图找出问题所在

测试后打印的消息是。

结果真的很混乱。通过第一次打印,我可以看出 getNode 函数正在按预期返回模拟节点。通过第二次打印,我可以看出 Computer 类的模拟已创建。但是第 3 次和第 4 次打印返回 null 所以问题出在方法 toComputer 的模拟上,但我不知道我做错了什么

有任何想法吗?

谢谢!

0 投票
1 回答
54 浏览

unit-testing - 使用 jenkins-spock 在单元测试中评估来自 Jenkins 共享库的返回值

所以我在我的 vars 文件夹中有一个脚本化的共享管道库,它在最后返回一些值:

现在我尝试像这样测试它:

这不起作用,因为结果将始终为空。我已经用 Jenkins-Spock 针对不同的场景编写了相当多的测试,所以基本机制很清楚。但是在这种情况下我错过了什么?

0 投票
0 回答
33 浏览

groovy - 无法解析 com.homeaway.devtools.jenkins.testing.JenkinsPipelineSpecification 类

我正在尝试使用Maven运行一些 spock 测试。我之前已经使用groovy 2.4 版进行了测试。现在当我切换到 2.5+ 时,它显示了一些错误。

我最小的pom是:

我的项目结构如下:

这是错误报告:虽然我的 pom 中已经有依赖jenkins-spock,但为什么会出现此错误?

0 投票
0 回答
10 浏览

unit-testing - Jenkins-Spock 测试因 NoClassDefFoundError 而失败

我在我的 Jenkins 共享库项目中安装了 jenkins-spock 包。当我尝试运行我创建的测试时,出现以下错误:

这是我的 build.gradle 文件内容:

插件{ id 'groovy' id 'java' id 'idea' }

欢迎任何意见或建议。提前致谢 !