我正在编写一组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脚本时,我得到:
/SourcCode/jenkins/pipeline-utils/tests/JustTestingSpec.groovy :不知道如何将java.lang.RuntimeException作为JUnit测试来处理
这事儿可以理解。我需要使用Sputnik,但我已经查看了Spock和Sputnik源代码,以及Spock示例项目,但这些都假设您使用的是maven或gradle。我想不出直接调用人造卫星的正确方法。有什么想法吗?
发布于 2016-09-29 14:02:58
尽管您要求的内容是可能的,而且BalRog已经提出了解决方案,但从长远来看,最好只使用Gradle或Maven从命令行运行您的测试。
您将遇到的所有Jenkins教程都将讨论Maven和/或Gradle,因此使用构建系统比使用自定义脚本更有意义。
https://stackoverflow.com/questions/39563338
复制相似问题