我已经为一个目前工作良好的项目创建了几个原型,但我希望能够验证从原型生成的代码在将来是否继续工作。
我想要的是原型构建的一个阶段,这个阶段采用刚刚创建的原型,在它上运行mvn archetype:generate,然后在生成的代码上运行mvn verify来验证生成的代码是否真的正常。如果需要的话,我将编写自己的mojo来完成这个任务,但是我想看看是否已经有了解决方案。我看到了archetype:integration-test的目标,但它似乎并没有做我想做的事情。
发布于 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,但可以按照以下方式进行补救:
<build>
<plugins>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
<configuration>
<skip>${skipTests}</skip>
</configuration>
</plugin>
</plugins>
</build>(虽然看起来它跳过了整个插件,但它实际上可以工作,可能是因为它回到了遗留模式;而我没有找到任何成功的方法来跳过使用上面代码的integration-test目标执行。)
发布于 2011-01-21 14:01:00
除了使用maven调用插件的方法之外,我们还使用了一种不同的方法。在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。
发布于 2015-03-30 12:28:25
我自己也在努力解决这个问题,我认为在使用maven原型插件的当前版本2.3时,除了src/test/resources/projects/first/objec.txt之外,还需要一个包含如下内容的src/test/resources/projects/first/archetype.properties:
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此拉请求演示了一个完整的工作示例。
https://stackoverflow.com/questions/4082643
复制相似问题