当前位置: 首页 > 知识库问答 >
问题:

Maven找不到测试[重复]

林元明
2023-03-14

我有一个Maven项目设置。在这个项目中,我使用JUnit进行单元测试。当我使用MVN testMVN clean test运行测试时,不会运行任何测试。测试位于src/test/java中,它们都以test结束(它们匹配*test.java)。

这是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.9</source>
                    <target>1.9</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.0.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>
    </dependencies>

    <groupId>org.astropeci.ppp4e</groupId>
    <artifactId>ppp4e</artifactId>
    <version>1.0</version>
</project>

我的整个项目结构可以在这里看到:https://bitbucket.org/equator-lang/ppp4e/src/master/

任何帮助都将非常感谢,因为我已经尝试了很多个小时来让这个工作,但不知道该做什么。

公开测试类后,Maven的响应从:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

致:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.astropeci.ppp4e.defaultimpl.internal.lexing.MultiplexedTokenBuilderTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

共有1个答案

柴默
2023-03-14

JUnit5支持尚未内置到负责运行单元测试的maven-surefire-plugin中。您需要用提供程序配置插件,以便它工作。

我使用以下配置:

<properties>
    ...
    <maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version>
    <junit-5.version>5.2.0</junit-5.version>
</properties>

...
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${maven-surefire-plugin.version}</version>
      <!-- JUnit 5 Support -->
      <dependencies>
        <dependency>
          <groupId>org.junit.platform</groupId>
          <artifactId>junit-platform-surefire-provider</artifactId>
          <version>1.2.0</version>
        </dependency>
        <dependency>
          <groupId>org.junit.jupiter</groupId>
          <artifactId>junit-jupiter-engine</artifactId>
          <version>${junit-5.version}</version>
        </dependency>
      </dependencies>
    </plugin>
 ...

  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>${junit-5.version}</version>
    <scope>test</scope>
  </dependency>
...
 类似资料:
  • 问题内容: 我尝试使用Maven创建一个测试项目,并且单元测试工作正常。但是,当尝试对j2ee项目执行相同操作时,surefire无法找到单元测试。测试位于正确的目录(src / test / java)中,并且正在对其进行编译。 junit测试位于src / test / java / unit / TestAddition.java pom.xml中的surefire插件配置不包含/排除任何文

  • 是的,包含测试的Java类命名正确。(它们以测试结尾) 尝试在pom.xml中添加以下配置: 测试位于以下结构下: /src/test/packagename/JavaClassTest.java,其中Packagename与src/main/java路径下编写的单元测试下的包相同。 我正在使用jupiter JUnit 5和maven-surefire-plugin与2.22.2 我仍然在mvn

  • 我有一个scala测试类,但是当我试图使用Maven目标'test'运行时,测试并没有运行。我收到Maven消息“There are no tests to run”。即使测试位于scala测试类中。我需要添加额外的配置吗? 以下是我的软件包设置: 下面是针对pom文件运行时Maven“测试”目标的输出: [INFO]----------------------生成成功[INFO]--------

  • 问题内容: 我有一个Maven程序,它可以正常编译。当我运行它时,它不会运行任何测试(在TESTs标头下显示)。 我已经用一个超级简单的设置重新创建了这个问题,我将在下面以及运行时将其包括在内-X。 单元测试可以从eclipse正常运行(都使用其默认的junit软件包,而当我包括maven下载的junit.jar时)。而且可以在下正确创建该类。我在带有Maven 3.0.2和Java 1.6.0_

  • 由于某些原因,此命令在我的本地计算机上运行良好: 然而,对于Codeship,它现在可以工作了,并抛出这个“找不到符号”错误。在Codeship中,完整命令是: 在POM中,存储库具有以下内容: 错误:

  • 我有两个模块mod1和mod2从同一个父项目。mod2依赖于mod1,而mod2 pom.xml包含以下依赖关系 在mod1中,我在中定义了一个抽象测试类 在mod2中,我定义了一个继承这个类的测试类。 这些都是JUnit4测试。当我直接在Eclipse中运行测试时,它工作得很好。但是当我执行时不起作用,有编译错误显示maven在编译和测试MOD2时没有找到。 我试着在类似的问题上应用所说的:Pa