正确绑定maven exec插件以测试阶段

时间:2013-10-01 09:37:39

标签: maven testing gruntjs mocha

在Maven项目中,我使用maven-exec-plugin来启动我的Grunt测试。它是这样的:

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <executable>cmd</executable>
          <workingDirectory>${project.basedir}/src/main/webapp</workingDirectory>
          <arguments>
            <argument>/C</argument>
            <argument>grunt --no-color test</argument>
          </arguments>
        </configuration>  
      </plugin>
    </plugins>
  </build>

我可以运行mvn test并执行我的grunt test任务:如果测试通过,maven构建通过,如果测试失败,则maven构建失败。当某些测试失败时,我有以下输出:

  .............................................  1 failing
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD FAILURE
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 3.496s
  [INFO] Finished at: ** ** ** **:**:** CEST ****
  [INFO] Final Memory: *M/*M
  [INFO] ------------------------------------------------------------------------
  [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default) on project *****: Command execution failed. Process exited with an error: 6 (Exit value: 6) -> [Help 1]

我想知道是否可以为失败的测试提供“通常的”maven输出。类似于:Build failure, there are failing tests

由于

1 个答案:

答案 0 :(得分:2)

不容易。构建失败消息显示失败插件抛出的异常;在exec-maven-plugin的情况下,这将只是退出代码的报告。它不会考虑命令行为中的任何其他内容。

如果你确定了,你可以重写或扩展exec-maven-plugin,或者在Groovy中写一些类似的内容来抛出带有更具体信息的异常。

(存在grunt-maven-plugin,但它也会委托给exec-maven-plugin。)