我正在编写一组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的正确方法。有什么想法吗?
答案 0 :(得分:0)
即使您提出的问题是可能的并且BalRog已经提出了解决方案,但从长远来看,如果您只是使用Gradle或Maven从命令行运行测试,则会更好。
您将遇到的所有Jenkins教程都将讨论Maven和/或Gradle,因此使用构建系统比使用自定义脚本更有意义。