4

我一直在尝试设置Maven来运行我的Spock (0.7) 测试,但无济于事。我一直在尝试groovy-eclipse-compiler根据其网站不再推荐使用Spockgmaven文档中提到的内容。我的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

4

2 回答 2

7

只要测试类符合 Surefire 的命名约定(*Test默认情况下等),Surefire 就会自动选择 Spock 测试。首先,您应该检查测试类是否真的被编译并存在于target/test-classes. 如果不是,那么您设置 Groovy 编译器的方式可能有问题。

于 2013-12-06T21:38:12.803 回答
0

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

  1. 为确保 Maven 构建工作正常且配置正确mvn clean verify,请从命令行发出 a。
  2. 检查构建是否编译了测试类target/test-classes

如果未编译测试类,则问题是gmavenplus-plugin负责编译 groovy 代码的配置错误。

您很可能错过了执行目标部分:

<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>
于 2016-12-01T12:09:43.097 回答