gpt4 book ai didi

java - 线程中出现异常 "main"java.lang.NoSuchMethodError : org. junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader;

转载 作者:行者123 更新时间:2023-12-01 18:04:26 27 4
gpt4 key购买 nike

我尝试在 Intellij 上使用wiremock 运行测试,但出现错误。有人可以帮我解决这个问题吗?

    public class Tests {

private WireMockServer wireMockServer;

@Before
public void setup() {
wireMockServer = new WireMockServer(8080);
wireMockServer.start();
setupStub();
}

@After
public void teardown() {
wireMockServer.stop();
}

public void setupStub() {
wireMockServer.stubFor(get(urlEqualTo(PEOPLE_PATH))
.willReturn(aResponse().withHeader("Content-Type", "text/plain")
.withStatus(200)
.withBodyFile("/Users/denis/Documents/people/autotests/src/test/resources/_files/json/people.json")));
}

@Test
public void testStatusCodePositive() {
given().
when().
get(BASE_URL + PEOPLE_PATH).
then().
assertThat().statusCode(200);
}
}

这是我得到的错误: 线程“main”中的异常 java.lang.NoSuchMethodError: org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader; 在 org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry.loadTestEngines(ServiceLoaderTestEngineRegistry.java:31) 在 org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:42) 在 com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:43)

这是我的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>

<groupId>com.people.apitest</groupId>
<artifactId>people-apitest</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>

<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>2.24.1</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>4.1.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
</project>

最佳答案

wiremock 和 junit5 之间似乎存在依赖冲突。当我查看 mvncentral 上的wiremock 依赖项时,它指出它在下面使用 xmlunit ( https://mvnrepository.com/artifact/com.github.tomakehurst/wiremock/2.26.3 )。

根据该依赖关系,您可以看到 xmlunit 在下面使用 Junit4 ( https://mvnrepository.com/artifact/org.xmlunit/xmlunit-core/2.6.2 )。

通过阅读公共(public) JUnit API,我可以很清楚地找到哪个版本可以使用“getDefaultClassloader”方法。我建议您尝试删除对 j​​unit5 的依赖并使用 junit4 进行测试,看看是否可以解决您的类加载问题。

如果您使用依赖项管理器(mvn、gradle),您可以使用命令行或 IDE 列出有效的依赖项。如果您发现 junit 版本冲突,请调查该路径。

编辑:另外,欢迎来到臭名昭著的“依赖 hell ”

关于java - 线程中出现异常 "main"java.lang.NoSuchMethodError : org. junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()Ljava/lang/ClassLoader;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60580727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com