java - 获取 "java.lang.NoClassDefFoundError: org/junit/platform/engine/DiscoverySelector"尝试运行 Serenity JBehave

标签 java maven testing bdd jbehave

使用 Maven(通过命令行)创建了一个新的通用 Serenity BDD JBehave 框架。

将项目导入 Intelli J,但当我尝试运行“AcceptanceTestSuite”时,出现“未找到测试”错误和以下错误线程“main”中的异常 java.lang.NoClassDefFoundError: org/junit/platform/engine/DiscoverySelector

我已经尝试重新导入项目,但这并没有解决问题。

这是完整的错误日志:

Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/platform/engine/DiscoverySelector
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetPublicMethods(Class.java:2902)
    at java.lang.Class.getMethods(Class.java:1615)
    at org.jbehave.core.steps.AbstractStepsFactory.hasAnnotatedMethods(AbstractStepsFactory.java:70)
    at net.serenitybdd.jbehave.SerenityStepFactory.getCandidateClasses(SerenityStepFactory.java:61)
    at net.serenitybdd.jbehave.SerenityStepFactory.stepsTypes(SerenityStepFactory.java:48)
    at org.jbehave.core.steps.AbstractStepsFactory.createCandidateSteps(AbstractStepsFactory.java:34)
    at net.serenitybdd.jbehave.SerenityStepFactory.createCandidateSteps(SerenityStepFactory.java:42)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.buildCandidateSteps(SerenityReportingRunner.java:294)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.createCandidateStepsWith(SerenityReportingRunner.java:249)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.createCandidateStepsWithNoMonitor(SerenityReportingRunner.java:257)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.getCandidateSteps(SerenityReportingRunner.java:240)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.buildDescriptionFromStories(SerenityReportingRunner.java:313)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.getDescriptions(SerenityReportingRunner.java:84)
    at net.serenitybdd.jbehave.runners.SerenityReportingRunner.getDescription(SerenityReportingRunner.java:168)
    at com.intellij.junit4.JUnit4IdeaTestRunner.getDescription(JUnit4IdeaTestRunner.java:78)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.DiscoverySelector
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 21 more

最佳答案

将依赖添加到pom.xml:

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-engine</artifactId>
    <version>1.2.0</version>
</dependency>

关于java - 获取 "java.lang.NoClassDefFoundError: org/junit/platform/engine/DiscoverySelector"尝试运行 Serenity JBehave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51308551/

相关文章:

java - 为什么 Struts2 将我的字符串转换为字符串数组?

java - JPA 仅创建一次查询

java - Maven多模块项目添加Axis2导致的依赖冲突如何解决

c# - Moq C#,我怎样才能模拟这个类?

java - 什么布局管理器会做这个?

java - 在 Jackson 中指定特定通用集合字段的具体类型,无需注释

windows - 由于 'ñ",无法使用 Maven 编译 XMLBean 生成的类

java - 设置运行测试的 Travis 数据库的路径

ruby-on-rails - 如何测试使用系统命令的代码

reactjs - 模拟 React useRef 或带有 enzyme 和 Jest 的功能组件内的函数?