包括新的测试目录 maven surefire 插件



现有结构:src/test/java --> 所有java单元测试。这很容易被Maven surefire插件所接受。现在,除了这些java单元测试用例之外,我还想包含一些时髦的测试用例,我想把它们放在src/test/groovy下。如何让万无一失的插件拾取这些测试用例?我正在使用Intellij 12.0 终极版。

 <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>

更新:我也尝试了构建助手插件

  <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 add.

但是我没有看到为时髦文件生成任何类。

最终答案,感谢@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>

以下 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/java下进行 src/test/groovy java 单元测试下的时髦测试。

就像Java源代码需要编译一样(就像maven-compiler-plugin所做的那样),groovy文件也是如此。您需要添加 gmaven 插件,请参阅 http://docs.codehaus.org/display/GMAVEN/Building+Groovy+Projects#BuildingGroovyProjects-CompilingSources

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

最新更新