我已经将Maven配置为通过gunit运行maven-gunit-plugin(ANTLR语法单元测试工具)。但是,gunit具有两种不同的模式。第一种模式使gunit充当解释器,读取* .gunit(或* .testsuite)文件,对其进行解释并显示结果。可以这样配置:

  <plugin>
    <groupId>org.antlr</groupId>
    <artifactId>maven-gunit-plugin</artifactId>
    <version>3.1.3</version>
    <executions>
        <execution>
            <id>maven-gunit-plugin</id>
            <phase>test</phase>
            <goals>
                <goal>gunit</goal>
            </goals>
        </execution>
    </executions>
  </plugin>


第二种模式使gunit生成可以由JUnit运行的源代码。如何指示maven-gunit-plugin生成JUnit源而不是充当解释器?

一些注意事项:


我可以将测试阶段更改为“ generate-test-sources”,以使Maven插件在正确的时间运行。
我在maven-gunit-plugin上找不到任何有用的文档
我已经看到人们使用exec-maven-plugin通过特定的命令行选项运行gunit,但是我不打算这样做。


编辑/解决方法:

阅读各种响应后,我下载了ANTLR源代码,其中包括maven-gunit-plugin。该插件不支持junit生成。事实证明,gunit-maven-plugin和exec插件的codehaus快照是当前唯一的选择。

最佳答案

我通过discussion找到了一个MNG-4039并通过maven-gunit-plugin gunit-maven-plugin示例进行了说明。我将让您阅读整篇文章,但是根据作者的说法,您应该以如下形式结束:

<dependencies>
  <dependency>
    <groupId>org.antlr</groupId>
    <artifactId>antlr-runtime</artifactId>
    <version>3.1.1</version>
  </dependency>
  <!-- Here is the 'extra' dep -->
  <dependency>
    <groupId>org.antlr</groupId>
    <artifactId>antlr</artifactId>
    <version>3.1.1</version>
    <!-- we try to use scope to hide it from transitivity -->
    <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) -->
  </dependency>
</dependencies>
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>gunit-maven-plugin</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <executions>
        <execution>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>


我没有亲自测试此配置,因此无法确认所有功能都可以立即使用。我什至不知道该插件是否已在非SNAPSHOT版本中发布。我唯一可以确认的是,找到有关maven-gunit-plugin的“真实”文档似乎确实非常困难。

关于maven-2 - 如何使用maven-gunit-plugin生成JUnit源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1489711/

10-10 16:50