首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试我刚刚创建的maven原型?

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

Stack Overflow用户
提问于 2010-11-02 22:24:53
回答 5查看 7.5K关注 0票数 17

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

我想要的是原型构建的一个阶段,这个阶段采用刚刚创建的原型,在它上运行mvn archetype:generate,然后在生成的代码上运行mvn verify来验证生成的代码是否真的正常。如果需要的话,我将编写自己的mojo来完成这个任务,但是我想看看是否已经有了解决方案。我看到了archetype:integration-test的目标,但它似乎并没有做我想做的事情。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-20 11:49:40

更新2013年:这比其他答案要简单得多。

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

要使用,只需将单词install放在上面提到的goal.txt文件中,那么您正在原型的项目中的测试将作为正常构建的一部分被调用。(和/或执行部分中的verify .)

但是,如果您刚刚开始制作原型,请注意这个受欢迎的迷你指南已经过时,虽然它将用于创建原型,但它将而不是用于运行原型集成测试。相反,您应该创建一个描述为archetype-metadata.xml这里文件。(这也是更好的工作,因为它使用文件集!)

还请注意,这些集成测试不响应-DskipTests,但可以按照以下方式进行补救:

代码语言:javascript
复制
<build>
  <plugins>

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

  </plugins>
</build>

(虽然看起来它跳过了整个插件,但它实际上可以工作,可能是因为它回到了遗留模式;而我没有找到任何成功的方法来跳过使用上面代码的integration-test目标执行。)

票数 16
EN

Stack Overflow用户

发布于 2011-01-21 14:01:00

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

代码语言:javascript
复制
<dependency>                                
  <groupId>org.apache.maven.shared</groupId>
  <artifactId>maven-verifier</artifactId>   
  <version>1.2</version>                    
</dependency>                               

现在你可以用

代码语言:javascript
复制
org.apache.maven.it.Verifier

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

票数 3
EN

Stack Overflow用户

发布于 2015-03-30 12:28:25

我自己也在努力解决这个问题,我认为在使用maven原型插件的当前版本2.3时,除了src/test/resources/projects/first/objec.txt之外,还需要一个包含如下内容的src/test/resources/projects/first/archetype.properties:

代码语言:javascript
复制
sourceEncoding=UTF-8
groupId=integrationtest.group
artifactId=integrationtest.artifactId
version=1.0.0-SNAPSHOT
package=org.eclipse.xtend.xtend-archetype.integrationtest
packageInPathFormat=org/eclipse/xtend/xtend-archetype/integrationtest

此拉请求演示了一个完整的工作示例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4082643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档