如何从命令行运行spock测试?

时间:2017-01-27 11:29:11

标签: groovy command-line spock

我已查看此链接:

https://gist.github.com/ysb33r/5825457

似乎它可以像这样运行:

from datetime import date

year = input("Please enter your year of birth : ")
now = date.today().year
age =  now-int(year)

print ("Your age is %s" % age)

我已经将所有第三部分jar添加到CLASSPATH,所以从这些libs中找到所有导入。但是找不到我自己的所有类,并且出现如下错误消息:

groovyc *.groovy

java -cp ~/.grapes/org.spockframework/spock-core/jars/spock-core-0.7-groovy-2.0.jar:$GROOVY_HOME/embeddable/groovy-all-2.1.4.jar:$GROOVY_HOME/lib/junit-4.11.jar:$GROOVY_HOME/lib/hamcrest-core-1.3.jar:.org.junit.runner.JUnitCore ExampleSpec

我想这个选项如下: - sourcepath是必需的,但我发现这个命令选项已弃用了,那么如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

我能够运行gist中描述的测试,但修改了groovyc以将-cp标志添加到spock jar中,如果你在子目录中有源代码的话您应该使用**/*.groovy代替*.groovy

查看运行java命令的方式,它会错过.org.junit.runner.JUnitCore之间的空格

所以而不是

java -cp ~/.grapes/org.spockframework/spock-core/jars/spock-core-0.7-groovy-2.0.jar:$GROOVY_HOME/embeddable/groovy-all-2.1.4.jar:$GROOVY_HOME/lib/junit-4.11.jar:$GROOVY_HOME/lib/hamcrest-core-1.3.jar:.org.junit.runner.JUnitCore ExampleSpec

我应该

java -cp ~/.grapes/org.spockframework/spock-core/jars/spock-core-0.7-groovy-2.0.jar:$GROOVY_HOME/embeddable/groovy-all-2.1.4.jar:$GROOVY_HOME/lib/junit-4.11.jar:$GROOVY_HOME/lib/hamcrest-core-1.3.jar:. org.junit.runner.JUnitCore ExampleSpec

请注意第二个空格。 .是添加到类路径的当前目录

希望这会有所帮助