我正在写一组groovy脚本作为Jenkins管道库的一部分。目前我使用普通的旧JUnit来测试它们,但想切换到Spock。我只需通过调用以下groovy脚本从命令行运行测试。如何从命令行使用Spock
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。我无法想出直接调用人造卫星的正确方法。有任何想法吗?
在GitHub上看到这个例子:https://gist.github.com/ysb33r/5825457 – BalRog
@BalRog,我看了你的例子,它是一个开始,但它从上面缺少的是能够自动查找并执行所有规格。 –