【发布时间】:2017-05-06 18:05:44
【问题描述】:
我正在使用 IntelliJ、Spring Boot 1.3、java8 和 maven。
我们在我们的单元中使用了 TestNG,但是当我开始使用 Spock 进行单元测试时,我真的很喜欢在 Groovy 中使用 Spock 编写测试。这是文件夹结构:
src->test->java -> 所有基于 java 的 TestNG 测试都在这里
src->test->groovy -> 所有基于 groovy 的 Spock 测试都在这里。所有测试都有一个 Spec 后缀,这就是我配置surefire插件来查看这些测试的方式。
现在,当我运行这些单独的测试时,它们工作得很好。但是当我运行像mvn test 或mvn clean install 这样的maven 生命周期命令时,即使我启用了maven 编译器和适当的库,Spock 测试也不会运行。
这就是我的 pom 的样子:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.surefire}</version>
<configuration>
<skipTests>false</skipTests>
<useFile>false</useFile>
<includes>
<include>**/*Spec.*</include>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>1.0-groovy-2.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency> <!-- enables mocking of classes without default
constructor (together with CGLIB) -->
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>2.1</version>
<scope>test</scope>
</dependency>
我想我在插件中遗漏了一些东西,它可以让 maven 在 maven 生命周期命令期间与 TestNG 一起运行 Spock 测试。我想我在这里遗漏了一些琐碎的事情。有人可以在这里给我一些关于我应该在 pom 中添加什么的指示,或者如果有人在 github 中有一个我可以查看的示例骨架项目。谢谢。
【问题讨论】:
-
你在用什么
**/*Spec.java就像在示例中:github.com/spockframework/spock-example/blob/master/pom.xml
标签: maven testng spock maven-surefire-plugin