如何从命令行使用Spock

时间:2016-09-18 22:44:53

标签: groovy junit spock

我正在编写一组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文件并且位于./tests下面,如下所示:

@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脚本时,我得到了:

  

java.lang.RuntimeException:不知道如何对待   /SourcCode/jenkins/pipeline-utils/tests/JustTestingSpec.groovy as a   JUnit测试

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

1 个答案:

答案 0 :(得分:0)

即使您提出的问题是可能的并且BalRog已经提出了解决方案,但从长远来看,如果您只是使用Gradle或Maven从命令行运行测试,则会更好。

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