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

Maven无法找到要运行的JUnit测试

蒙洛华
2023-03-14

我在IntelliJ中打开了一个新的Java项目,用Maven作为构建工具,目前有一个类和一个JUnit5测试类。当我指示IntelliJ单独或一起运行测试时,它就可以工作了。但是当我转到终端并点击MVN clean test或从IntelliJ内的Maven窗格中执行相同操作时,它会跳过测试。

然而,与这个类似问题的提问者不同,我没有得到任何错误信息。测试类被找到并编译。我没有同样的问题(不正确的文件命名),他有。

[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ markovmodels ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\joe\foo\markovmodels\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ markovmodels ---
[INFO] Surefire report directory: C:\Users\joe\foo\markovmodels\target\surefire-reports

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

Results :

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

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.648 s
[INFO] Finished at: 2019-08-13T09:02:53-04:00
[INFO] ------------------------------------------------------------------------
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.4.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.4.2</version>
        <scope>test</scope>
    </dependency>

它们是从另一个工程中直接复制过来的。我没有指定Surefire插件的版本,也没有更改它的任何默认值,因此有效的POM与我的其他项目相同(它使用maven-sureFire-pluginversion2.12.4)。测试源文件似乎位于正确的目录中,并且具有正确的命名约定。我会犯什么错误?

当前状态的代码可以在GitHub上。

共有1个答案

缪升
2023-03-14

maven-surefire-plugin的默认版本有问题,我可以通过升级来修复它。我通过在GitHub上复制JUnit5示例Maven项目中的相关部分来解决这个问题:

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.5.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

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

  • 我有一些Selenium Webdriver测试,希望使用mvn-test从命令行运行。问题是,我可以清理,构建和编译没有问题,但没有测试运行。我没有收到任何与测试有关消息,如“There are no tests to run”。 我的junit测试遵循*Test类命名约定。 编辑:好的,我发现这是一个配置文件的问题-修复!

  • 我已经从https://howtodoinjava.com/spring-batch/java-config-multiple-steps/'复制了Spring批处理程序。 我从https://docs.spring.io/spring-batch/docs/current/reference/html/testing.html创建了以下JUnit测试用例: 我的Maven pom文件是: 谢谢

  • 问题内容: 我有一个基于Gradle的Java项目,现在我想使用PowerMock模拟一个私有方法。问题是我无法使用PowerMockRunner,因为添加注释时总是会收到以下异常。 错误: 这是我的测试依赖项: 完全为空(初始化错误)时,测试本身也会失败: 任何想法可能有什么问题吗?使用PowerMock的其他测试运行正常(没有一个使用PowerMockRunner)。 问候和感谢您的任何帮助!

  • 我有一个使用testng API动态创建testng.xml文件的项目,因此使用java的main函数,我的项目按预期工作,但是如果我使用'run as->maven build'通过maven运行我的项目,看起来只有BeforeSuite和BeforeTest类在运行,而实际的测试并没有运行。以下是我的pom.xml文件: 最后,这是StackTrace: 我想知道我错过了什么。

  • 我正在通过Maven运行测试用例。使用以下命令: 获取成功: 获取失败: 类名为LoginTest 堆栈跟踪: [错误]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.12.4:project Web上的test(default-test):未执行任何测试!(设置-DFAILIFNOTESTS=FALSE忽略此错误。)->[帮助1]or