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

如何从 jar 文件运行 Maven Failsafe 集成测试?

如何从 jar 文件运行 Maven Failsafe 集成测试?

慕森王 2023-08-04 15:31:28
我有一个 Spring Boot 多模块 Maven 项目,我可以使用以下命令运行集成测试:mvn clean verify而且效果很好。我现在想从容器运行相同的集成测试,并且不想将所有源代码嵌入到容器中。我的问题是:如何在不使用源代码的情况下运行Maven Failsafe 插件?我尝试从命令行运行failsafe:integration-test目标并设置dependencyToScan参数:mvn failsafe:integration-test -DdependenciesToScan=com.myorg:proj-tests.jar但没有找到测试。我不需要在没有 Maven 的情况下运行测试。我更喜欢使用 Maven 从命令行运行测试,而不是添加代码或修改项目结构。PS2:我使用的是 maven-failsafe-plugin 2.22.2,这是 Spring Boot 2.1.8 提供的版本。
查看完整描述

1 回答

?
繁花不似锦

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

来自文档:


从版本 2.22.0 开始,您可以从多模块项目的项目依赖项中扫描测试类。


这意味着测试 ( proj-tests.jar) 必须是项目的依赖项。由于您无法在构建测试 jar 的同一项目中依赖它们,因此解决方案是使用另一个模块或pom文件。例子:


<groupId>failsafe.use.jar</groupId>

  <artifactId>failsafe-use-jar</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>


  <dependencies>

    ...

    <dependency>

      <groupId>com.myorg</groupId>

      <artifactId>proj-tests</artifactId>

      <version>0.0.1-SNAPSHOT</version>

      <classifier>tests</classifier>

    </dependency>

    ...

  </dependencies>


   <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-failsafe-plugin</artifactId>

        <version>2.22.2</version>

      </plugin>

    </plugins>

  </build> 

这proj-tests是一个项目依赖项,可以使用以下命令创建:


 <groupId>com.myorg</groupId>

  <artifactId>proj-tests</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

 ...

  <build>

    <plugins>

      <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-jar-plugin</artifactId>

        <version>3.1.2</version>

        <executions>

          <execution>

            <goals>

              <goal>test-jar</goal>

            </goals>

          </execution>

        </executions>

      </plugin>

    </plugins>

  </build>


要从容器运行集成测试,显然需要将所有依赖项安装在本地(容器)maven 存储库中或部署在远程中。然后你可以运行:

mvn failsafe:integration-test -DdependenciesToScan=com.myorg:proj-tests

请注意,属性的格式dependenciesToScangroupId:artifactId(您使用 jar 的名称而不是 运行artifactid

另请注意,集成测试failsafe默认搜索以IT(集成测试) 结尾的类文件。



查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

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