Java Maven在集成测试阶段运行码头
我使用Java Maven在集成测试阶段运行码头,java,maven,jetty,integration-testing,maven-failsafe-plugin,Java,Maven,Jetty,Integration Testing,Maven Failsafe Plugin,我使用故障保护插件 因此,当我键入mvn failsafe:integration test时,它会启动我的集成测试(这很好) 但我希望我的jetty服务器从预集成阶段开始。我该怎么办? (我不想启动mvn验证,因为它涉及整个周期的运行,但是mvn故障保护:集成测试——似乎应该这样做) 有两个插件: org.apache.maven.plugins maven故障保护插件 2.16 集成测试 集成测试 验证 验证 org.eclipse.jetty jetty maven插件 ${jetty.
故障保护
插件
因此,当我键入mvn failsafe:integration test
时,它会启动我的集成测试(这很好)
但我希望我的jetty服务器
从预集成
阶段开始。我该怎么办?
(我不想启动mvn验证
,因为它涉及整个周期的运行,但是mvn故障保护:集成测试
——似乎应该这样做)
有两个插件:
org.apache.maven.plugins
maven故障保护插件
2.16
集成测试
集成测试
验证
验证
org.eclipse.jetty
jetty maven插件
${jetty.version}
停止
9999
5.
5.
${project.basedir}/src/main
${project.basedir}/src/test
${project.basedir}/src/test/resources/jetty-context.xml
/${project.artifactId}-${project.version}
起动码头
预集成测试
跑爆
0
真的
停靠码头
整合后测试
停止
这是jetty和maven故障保护插件使用手册:
它提供了一个示例配置,用于将Jetty集成到集成测试生命周期中
Jetty在集成前测试阶段启动,在集成后测试阶段停止
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.16</version>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
org.mortbay.jetty
maven jetty插件
6.1.16
起动码头
预集成测试
跑
0
真的
停靠码头
整合后测试
停止
但是,它还特别建议您使用验证
阶段:
建议您不要直接调用
集成前测试、集成测试或集成后测试阶段
而是通过指定验证来运行集成测试
阶段。[……]
这允许您设置集成测试
环境在预集成测试阶段,运行
集成测试在集成测试阶段,干净地拆卸
集成后测试期间的集成测试环境
最后检查集成测试结果和失败之前的阶段
如有必要,请进行构建
我更喜欢在测试用例中以编程方式动态启动jetty。主要原因是:
- 测试变得独立,不依赖于maven配置
- 可以在任何IDE中按原样运行测试
验证
阶段中的集成测试,实现了类似的设置。仅供参考:如果您只键入集成测试
短语,则无法进行集成后测试。