【发布时间】:2016-09-18 22:44:52
【问题描述】:
我正在编写一组 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 作为 JUnit 测试
这是有道理的。我需要使用 Sputnik,但我查看了 Spock 和 Sputnik 源以及 Spock 示例项目,但这些都假设您使用的是 maven 或 gradle。我想不出直接调用 Sputnik 的正确方法。有什么想法吗?
【问题讨论】:
-
在 GitHub 上查看此示例:gist.github.com/ysb33r/5825457
-
@BalRog,我查看了您的示例,这是一个开始,但上面缺少的是自动查找和执行所有规范的能力。