【问题标题】:Maven can't find any testMaven找不到任何测试
【发布时间】:2019-10-16 08:29:42
【问题描述】:

我用类似的项目复制 pom.xml 都可以。添加需要的依赖项。此外,我添加了具有“编译”范围的 Jupiter,否则项目无法编译。我试图找到类似问题的解决方案,但没有找到。

环境:ubuntu 18,idea 2018.3,openjdk8,maven 最新版本。

我尝试更改更多新旧版本的junit,surefire插件和junit-platform-surefire-provider但没有找到需要的组合。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <junit.api.version>5.4.0</junit.api.version>
    <junit.jupiter.version>5.4.0</junit.jupiter.version>
    <junit.platform.version>1.3.1</junit.platform.version>
    <aspectj.version>1.9.4</aspectj.version>
    <allure.version>2.12.1</allure.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>${junit.jupiter.version}</version>
    </dependency>
    <dependency>
        <groupId>io.qameta.allure</groupId>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-junit5</artifactId>
        <version>${allure.version}</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.4.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
                <testFailureIgnore>false</testFailureIgnore>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <systemProperties>
                    <property>
                        <name>junit.jupiter.extensions.autodetection.enabled</name>
                        <value>true</value>
                    </property>
                </systemProperties>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.3.2</version>
                </dependency>
                <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-maven</artifactId>
            <version>LATEST_VERSION</version>
            <configuration>
                <reportVersion>2.4.1</reportVersion>
            </configuration>
        </plugin>
    </plugins>
</build>

【问题讨论】:

  • 您的测试文件的文件名是什么?它们是以Test开始还是结束

标签: maven junit5


【解决方案1】:

默认情况下,maven Surefire 插件希望您的测试文件名符合以下条件:

  • **/Test*.java - 包括其所有子目录和所有 Java 以“Test”开头的文件名。
  • **/*Test.java - 包括所有 它的子目录和所有以“Test”结尾的 Java 文件名。
  • **/*Tests.java - 包括其所有子目录和所有 Java 以“Tests”结尾的文件名。
  • **/*TestCase.java - 包括所有 其子目录和所有以结尾的 Java 文件名 “测试用例”。

如果您测试的文件名不符合上述条件,您有两种选择。首先修改您的测试文件名,使它们符合上述标准。其次,您可以通过配置 maven-surefire-plugin 来修改包含标准

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M3</version>
        <configuration>
          <includes>
            <include>%regex[.*(Cat|Dog).*Test.*]</include>
          </includes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

欲了解更多信息,请查看the maven-surefire-plugin documentation

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 2012-04-18
    相关资源
    最近更新 更多