Add cucumber-JVM Into Project With Gradle
众所周知,Cucumber是Ruby的一个用来BDD的测试框架。Cucumber-Java则是Java版的Cucumber,它模拟Ruby里的DSL,使用Annotation创建了一套Java的BDD测试框架。Cucumber-JVM项目中只有通过ant和maven来使用Cucumber-JVM的例子,这里我记录一下Cucumber-JVM如何在Gradle里使用。
为项目引入Cucumber-JVM
首先在build.gradle文件中加入对于Cucumber-JVM的依赖:
1 2 3 4 5 |
|
添加task运行Cucumber
添加完stories和steps之后,就可以运行Cucumber-JVM了,看看我们的测试是否通过。虽然在Gradle里文档里说了运行gradle test时,会扫描classpath路径下具有@RunWith annotation的类,并作为JUnit的测试去运行。但是,我在使用的时候(gradlew1.3),运行gradle test找不到标记了@RunWith的JUnit Runner(这个是gradle的一个bug,已经有人报上去了)。
在研究了Cucumber-JVM自带的例子里的ant脚本之后,我通过添加一个task来运行Cucumber-JVM的测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- 这里实际上就是运行Cucumber-JVM提供的Java类cucumber.api.cli.Main去运行@RunWith的JUnit Runner。
- 需要给cucumber.api.cli.Main类指定classpath:sourceSets.test.output.classesDir,sourceSets.main.output.classesDir以及configurations.cucumberRuntime。configurations.cucumberRuntime的配置如下:
1 2 3 4 5 |
|
* 通过args指定steps的包(cucumber.examples.java.helloworld)和stories的目录(src/test/resources)
##完整build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|