3

现有结构:src/test/java --> 所有 java 单元测试。这很容易被 Maven surefire 插件拾取。现在,除了这些java单元测试用例之外,我想包括一些groovy测试用例,我想把它们放在src/test/groovy下。如何让surefire插件选择这些测试用例?我正在使用 Intellij 12.0 ulitmate 版本。

 <plugin>
       <artifactId>maven-surefire-plugin</artifactId>
       <configuration>
           <additionalClasspathElements>
               <additionalClasspathElement>../groovy</additionalClasspathElement>
           </additionalClasspathElements>
           <excludes>
                <!-- ignore inner classes -->
                <exclude>**/*$*.java</exclude>

           </excludes>
       </configuration>
       <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.12</version>
          </dependency>
    </dependencies>
   </plugin>

更新:我也试过 build-helper-maven-plugin

  <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
            <!-- States that the plugin's add-test-source goal is executed at generate-test-sources phase. -->
            <execution>
                <id>add-groovy-test-sources</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>add-test-source</goal>
                </goals>
                <configuration>
                    <!-- Configures the source directory of integration tests. -->
                    <sources>
                        <source>src/test/groovy</source>
                    </sources>
                </configuration>
            </execution>
        </executions>
    </plugin>

现在,如果我运行“测试”目标,我会看到添加了 C:\Developer\Code\myProj\trunk\ss\src\test\groovy。

但我没有看到为 groovy 文件生成的任何类。

最终答案,感谢@khmarbaise,我刚刚升级了版本,并删除了 GMaven 编译

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
    </dependency>


    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.1.3</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <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.3-01</version>
                </dependency>
            </dependencies>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.16</version>
        </plugin>

    </plugins>
</build>
4

2 回答 2

1

以下 pom 正在工作:

<project
  xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.soebes.groovy</groupId>
  <artifactId>first-groovy</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>Test Groovy Scripting</name>

  <properties>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.codehaus.gmaven.runtime</groupId>
      <artifactId>gmaven-runtime-2.0</artifactId>
      <version>1.5</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>2.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.8.7</version>
    </dependency>
      <dependency>
        <groupId>org.easytesting</groupId>
        <artifactId>fest-assert</artifactId>
        <version>1.4</version>
      </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <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.0.7-03</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>1.5</version>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.gmaven.runtime</groupId>
            <artifactId>gmaven-runtime-2.0</artifactId>
            <version>1.5</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
            <version>1.8.6</version>
          </dependency>
        </dependencies>
        <configuration>
          <debug>false</debug>
          <verbose>true</verbose>
          <stacktrace>true</stacktrace>
          <defaultScriptExtension>.groovy</defaultScriptExtension>
          <providerSelection>2.0</providerSelection>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>testCompile</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

您可以在此处查看完整的工作示例。这意味着src/test/groovysrc/test/java.

于 2013-10-06T17:03:31.980 回答
0

正如需要编译 Java 源代码(由 maven-compiler-plugin 完成),groovy 文件也是如此。您需要添加 gmaven 插件,请参阅http://docs.codehaus.org/display/GMAVEN/Building+Groovy+Projects#BuildingGroovyProjects-CompilingSources

更新 https://github.com/groovy/GMavenPlus

于 2013-10-06T10:58:34.997 回答