使用Groovy写单元可以很大程度上提高单元测试的效率。但是,我们的工程是Maven管理的,默认情况下,Maven是不会编译Groovy代码的。 mvn test
也不会
执行Groovy编写的测试用例。
为了解决这个问题我们需要使用groovy-eclipse-compiler
这个Maven插件编译Groovy代码。但是按照官方文档配置pom文件后,发现java代码也使用groovy-eclipse-compiler
这个编译了。这个就不是我们想要的了,因为这个编译器和javac并不是完全一样的。
因此我们需要对官方的配置稍作修改,实现只在testCompile
的时候使用groovy-eclipse-compiler
编译代码。最终的配置文件如下:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<compilerId>groovy-eclipse-compiler</compilerId>
</configuration>
</execution>
</executions>
<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>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-test-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/test/groovy</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>