当前位置: 首页 > 知识库问答 >
问题:

如何使用Spock从命令行

解修然
2023-03-14

我正在编写一组groovy脚本,用作Jenkins管道库的一部分。目前我正在使用普通的老JUnit来测试它们,但我想切换到Spock。我只是通过调用下面的groovy脚本从命令行运行测试。

import groovy.util.AllTestSuite
import junit.textui.TestRunner

System.setProperty(AllTestSuite.SYSPROP_TEST_DIR, "./tests")
System.setProperty(AllTestSuite.SYSPROP_TEST_PATTERN, "**/*Test.groovy")

TestRunner.run(AllTestSuite.suite())

我试图找出运行Spock规范的等效脚本。我的第一次尝试是将SYSPROP_TEST_PATTERN切换到"**/*Spec.groovy。我有一个<代码>...Spec.groovy文件,写在下。

@Grab(group='org.spockframework', module='spock-core', version='1.0-groovy-2.3')
import spock.lang.*

class UtilsSpec extends Specification {

  def "Just testing"() {

    expect:
      1 + 1 == 2

  }
}

当我调用groovy脚本时,我得到:

JAVAlang.RuntimeException:不知道如何处理/sourcode/jenkins/pipeline-utils/tests/JustTestingSpec。groovy作为JUnit测试

这是有道理的。我需要使用Sputnik,但我已经查看了Spock和Sputnik源代码,以及Spock示例项目,但这些都假设您使用的是maven或gradle。我想不出直接调用Sputnik的正确方法。有什么想法吗?


共有1个答案

敖毅
2023-03-14

尽管你的要求是可能的,BalRog已经提出了一个解决方案,但从长远来看,如果你只是使用Gradle或Maven从命令行运行测试,效果会更好。

您将遇到的所有Jenkins教程都将讨论Maven和/或Gradle,因此使用构建系统比使用自定义脚本更有意义。

 类似资料:
  • 当我在终端中点击curl代码时,我得到了200,所以我假设我编写testStytch的方式到目前为止还可以。但是,一旦我试图集成到java文件中,我就会收到错误的请求响应。我现在有点不知所措。https://github.com/libetl/curl这就是我所说的转换curl代码。 这是我得到的错误。https响应代理{HTTP/1.1 400错误请求[日期:星期四,2021 23:21:424

  • 我尝试通过https连接的所有内容都失败了。Bellow是一个curl输出,但它可以通过git mongo和其他工具实现这一点。达尔文就是不喜欢https。 即将连接()到github。com端口443(#0) 您可能会说没问题,只需将https更改为http,是的,当您只有1个url(如git clone)时,这很好,但在rvm安装上,大约50个必需的东西因此无法安装。我不想进入rvm并将所有出

  • 问题内容: 我必须将一些常规代码发送给仅安装了Java的某些用户(没有常规,没有$ groovy_home等)。我正在尝试从命令行调用Groovy,但是我没有运气。这是我的蝙蝠文件: 这是我的例外: 有人有线索吗?我在\ lib目录中有’groovy-all-1.6-beta-1.jar’。 问题答案: 我认为您需要在类路径中明确列出groovy jar

  • 如何从命令行(没有任何IDE)创建带有Android项目? 在使用util之前,如下所示

  • 文件夹结构是正确的--也就是说,我有一个与node_modules/karma/bin匹配的嵌套文件夹结构,并且我在那个位置有一个名为karma的文件。 我在两个例子中都是从同一个位置开始的。在Visual Studio代码终端或windows命令提示符中运行此命令时,会出现以下错误:“'node_modules'未被识别为内部或外部命令、可操作程序或批处理文件。” 但在GitBash,它工作得很

  • 问题内容: 我正在尝试使用重定向和管道从Java执行一些Linux命令。Java如何调用或命令? 我试图用这个: 但是它与重定向或管道不兼容。 问题答案: 在你的shell中不执行命令 尝试 代替。 编辑::我的系统上没有,所以我改用。以下为我工作