Maven Surefire 未在套件中运行测试 - 测试检测为零

问题描述 投票:0回答:1

我在测试自动化项目中遇到了 Maven 的 Surefire 插件问题。当我使用 mvn test -Dtest=TestClass 运行单个测试类时,它工作正常。但是,使用 mvn test -Dtest=TestSuite 执行我的测试套件会导致无法识别任何测试。输出始终显示“Tests run: 0”,表示没有执行任何测试。此外,当从套件类运行测试时,我收到消息“未找到测试。”

我正在寻求帮助以了解为什么 Maven Surefire 无法识别我的测试套件以及如何解决此问题。任何有关此行为原因和潜在解决方案的见解或建议将不胜感激。

代码:

这是我的 pom.xml: https://pastebin.com/UyeucCKC

这是基本测试类(BaseTest.java)的示例:https://pastebin.com/ihtNkxHp

以及特定测试类的示例(Application1BaseTest.java):https://pastebin.com/WU3fj4Qv 最后,我的套件类(SmokeTests.java):https://pastebin.com/Av9z1PkG

这是我迄今为止尝试和观察到的:

  1. 测试结构:我的测试位于src/main/java,这是非常规的,但对于这个项目来说是有意的。

  2. 测试注释:我已确保我的测试方法已使用来自 org.junit.jupiter.api.Test

    @Test 正确注释。

  3. POM 配置:在 pom.xml 中,我将 设置为 src/main/java。此外,我还检查了 Surefire 插件配置,以确保它包含我的测试类和模式。

  4. 套件配置:我使用来自 JUnit Jupiter 的 @Suite@SelectClasses 注释创建了一个测试套件类来聚合我的测试。但是,使用 Maven 运行此套件会导致不执行任何测试。

  5. 类路径问题:我怀疑可能存在类路径问题,尽管单独运行测试工作正常。

  6. JUnit 5 依赖项:我已确保在我的 pom.xml 中包含所有必要的 JUnit 5 依赖项。

java maven playwright maven-surefire-plugin playwright-java
1个回答
0
投票

使用 Build Helper 插件中的 add-test-source 目标,将

src/main/java
添加为测试源,如下所示:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>3.4.0</version>
  <executions>
    <execution>
      <id>add-test-source</id>
      <phase>process-resources</phase>
      <goals>
        <goal>add-test-source</goal>
      </goals>
      <configuration>
        <sources>
          <source>src/main/java</source>
        </sources>
      </configuration>
    </execution>
  </executions>
</plugin>

并确保您的 JUnit Jupiter 依赖项正确无误;

scope
不应设置或设置为
scope
    

© www.soinside.com 2019 - 2024. All rights reserved.