如何测试我刚刚创建的 maven 原型?

2022-09-03 01:45:23

我已经为一个项目创建了一些原型,这些原型现在工作正常,但我希望能够验证从原型生成的代码将来是否继续工作。

我想要的是原型构建的一个阶段,它采用刚刚创建的原型,在其上运行,然后在生成的代码上运行,以验证生成的代码实际上是否正常。如果需要,我会编写自己的mojo来做到这一点,但想看看解决方案是否已经存在。我看到了目标,但它似乎没有做我想做的事。mvn archetype:generatemvn verifyarchetype:integration-test


答案 1

2013年更新:这现在比其他答案所暗示的要容易得多。

https://issues.apache.org/jira/browse/ARCHETYPE-334 于2011年8月完工

要使用,只需将单词放在上面提到的文件中,您正在原型的项目中的测试将作为正常构建的一部分被调用。(和/或在OP的情况下。installgoal.txtverify

但是,如果您不熟悉制作原型,请注意,这个流行的迷你指南已经过时了,虽然它适用于制作原型,但它不适用于运行原型集成测试。相反,您应该创建一个文件,如此所述。(这也更好,因为它使用文件集!archetype-metadata.xml

另请注意,这些集成测试没有响应,但可以按如下方式进行补救:-DskipTests

<build>
  <plugins>

    <plugin>
      <artifactId>maven-archetype-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <skip>${skipTests}</skip>
      </configuration>        
    </plugin>

  </plugins>
</build>

(虽然这看起来像是跳过了整个插件,但它实际上有效,可能是因为它回退到传统模式;而我找不到任何成功的方法,只使用上面的代码跳过目标执行。integration-test


答案 2

除了使用maven-invoker-plugin的方法之外,我们还使用一种不同的方法。在Maven验证器的帮助下,您可以轻松测试您的Maven插件和原型。只需将以下依赖项添加到 maven 测试项目的 pom 中:

<dependency>                                
  <groupId>org.apache.maven.shared</groupId>
  <artifactId>maven-verifier</artifactId>   
  <version>1.2</version>                    
</dependency>                               

现在您可以使用

org.apache.maven.it.Verifier

进入正常的 JUnit 测试。使用验证器,您可以运行maven目标和有关结果的一些断言。有关完整示例,请查看我们的javascript原型的集成测试maven模块:https://github.com/akquinet/javascript-archetypes


推荐