我一直在尝试设置 Maven 来运行我的 Spock (0.7)测试,但无济于事。我一直在尝试使用groovy-eclipse-compiler
作为gmaven
根据其网站不再推荐 Spock 文档中提及的内容。我的 POM 的相关部分:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.8.0-01</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-batch</artifactId>
<version>2.1.8-01</version>
</dependency>
</dependencies>
</plugin>
当我运行mvn test
时,我得到:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
为什么 maven / surefire 的任何想法都没有拿起我的测试?正如该网站的部分所示,我已确保src/test/java
答案 0 :(得分:7)
只要测试类符合Surefire的命名约定(默认为*Test
等),Surefire就会自动获取Spock测试。首先,您应检查测试类是否实际编译并存在于target/test-classes
下。如果没有,那么设置Groovy编译器可能有问题。
答案 1 :(得分:0)
如果您使用的是像Idea或Eclipse这样的IDE,可能会从IDE中构建项目成功编译您的测试类。
mvn clean verify
。target/test-classes
如果未编译测试类,则问题是负责编译groovy代码的gmavenplus-plugin
配置错误。
很可能,你错过了执行目标部分:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>