Maven不会接受Spock测试

时间:2013-12-06 17:33:23

标签: maven groovy spock gmaven-plugin groovy-eclipse

我一直在尝试设置 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

中存在空白文件

2 个答案:

答案 0 :(得分:7)

只要测试类符合Surefire的命名约定(默认为*Test等),Surefire就会自动获取Spock测试。首先,您应检查测试类是否实际编译并存在于target/test-classes下。如果没有,那么设置Groovy编译器可能有问题。

答案 1 :(得分:0)

如果您使用的是像Idea或Eclipse这样的IDE,可能会从IDE中构建项目成功编译您的测试类。

  1. 要确保maven版本正常运行且配置正确,请从命令行发出mvn clean verify
  2. 检查构建是否在target/test-classes
  3. 编译了测试类

    如果未编译测试类,则问题是负责编译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>