繁体   English   中英

JUnit 5 migration - how to solve java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ReflectiveInvocationContext

[英]JUnit 5 migration - how to solve java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ReflectiveInvocationContext

当我运行一些 JUnit 5 测试时(在同一个项目中也有 JUnit 4 测试,因为我们正在迁移到 Z8965A291ED0E84870298E1C35D61A10D 的过程中)

No tests were executed
...
Caused by:
java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ReflectiveInvocationContext

如何解决?

确保在pom.xml中有这些依赖项:

  • org.junit.jupiter:junit-jupiter-engine

对于 JUnit 4:

  • junit:4.12+
  • org.junit.vintage:junit-vintage-engine(这只支持 JUnit 4.12+)

如果你想使用@ParameterizedTest:

  • org.junit.jupiter:junit-jupiter-api
  • org.junit.jupiter:junit-jupiter-params

org.junit.platform:junit-platform-launcher不需要,即使您想在 Intellij 中运行测试。 也许你可以试试不带它。

        <!-- junit 5 -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- junit 5 parameterized tests -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>
        <!-- for compatibility for JUnit 4. JUnit vintage needs 4.12+ -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- for compatibility for JUnit 4 -->
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- for IDE support only(running tests from IDE) -->
<!--        <dependency>-->
<!--            <groupId>org.junit.platform</groupId>-->
<!--            <artifactId>junit-platform-launcher</artifactId>-->
<!--            <version>1.7.1</version>-->
<!--            <scope>test</scope>-->
<!--        </dependency>-->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM