为了账号安全,请及时绑定邮箱和手机立即绑定

如何在运行junit4集成测试之前通过maven部署war?

如何在运行junit4集成测试之前通过maven部署war?

慕标5832272 2024-01-17 17:04:48
我希望 Maven 在运行 jUnit 测试之前部署 war。我已经添加了故障安全插件和配置,但测试后部署仍然完成。测试不是由故障安全插件运行吗?<build>    <finalName>testWar</finalName>    <plugins>    <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-failsafe-plugin</artifactId>        <version>2.16</version>        <configuration>            <systemPropertyVariables>                <wildfly.remote.port>10090</wildfly.remote.port>            </systemPropertyVariables>        </configuration>        <executions>            <execution>                <goals>                    <goal>integration-test</goal>                    <goal>verify</goal>                </goals>            </execution>        </executions>    </plugin>    <plugin>        <groupId>org.wildfly.plugins</groupId>        <artifactId>wildfly-maven-plugin</artifactId>        <version>1.2.1.Final</version>        <configuration>            <hostname>host</hostname>            <port>10090</port>            <username>user</username>            <password>pw</password>        </configuration>        <executions>            <execution>                <id>wildfly-run</id>                <phase>pre-integration-test</phase>                <goals>                    <goal>deploy</goal>                </goals>            </execution>        </executions>    </plugin></plugins></build>
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

您报告的行为表明您的测试是在test阶段而不是integration-test阶段中运行的。这是因为默认情况下 Maven Surefire 和 Maven Failsafe 插件都使用类名约定来区分这两种类型的测试,如下所述:

默认单元测试行为

Maven Surefire 插件在该阶段运行单元test测试。默认情况下,它根据测试的类名选择要执行的测试,如Maven Surefire Plugin |中所述。测试的包含和排除:

  • “**/Test*.java” - 包括其所有子目录以及以“Test”开头的所有 Java 文件名。

  • “**/*Test.java” - 包括其所有子目录以及所有以“Test”结尾的 Java 文件名。

  • “**/*Tests.java” - 包括其所有子目录以及所有以“Tests”结尾的 Java 文件名。

  • “**/*TestCase.java” - 包括其所有子目录以及以“TestCase”结尾的所有 Java 文件名。

默认集成测试行为

Maven Failsafe 插件在该阶段运行集成测试integration-test。默认情况下,它还会根据测试的类名选择要执行的测试,如[Maven Failsafe Plugin | Maven Failsafe Plugin]中所述。测试的包含和排除]( https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html

  • “**/IT*.java” - 包括其所有子目录以及所有以“IT”开头的 Java 文件名。

  • “**/*IT.java” - 包括其所有子目录以及所有以“IT”结尾的 Java 文件名。

  • “**/*ITCase.java” - 包括其所有子目录以及所有以“ITCase”结尾的 Java 文件名。

因此,您可能只需要重命名集成测试类以符合上面显示的三个约定之一。


查看完整回答
反对 回复 2024-01-17
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信