使用 Spring boot 应用程序运行空手道测试时出现错误 java.lang.NoSuchMethodError: 'io.github.classgraph.ClassGraph

问题描述 投票:0回答:1

使用 Spring Boot 应用程序运行空手道测试时出现以下错误

java.lang.NoSuchMethodError: 'io.github.classgraph.ClassGraph io.github.classgraph.ClassGraph.acceptPaths(java.lang.String[])'

添加了以下 Maven 空手道依赖项 -

<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-core</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.intuit.karate</groupId>
    <artifactId>karate-junit5</artifactId>
    <version>1.4.1</version>
    <scope>test</scope>
</dependency>

使用以下代码添加了组件测试 -

import com.intuit.karate.junit5.Karate;
import com.ril.rpos.auth.Application;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;

public class ComponentTest {
    private static ConfigurableApplicationContext context;

    @BeforeAll
    public static void setUp() throws InterruptedException {
        //DB.INSTANCE.resetDB();
        context = SpringApplication.run(Application.class);
    }

    @Karate.Test
    Karate runTests() {
        return new Karate().path("classpath:features/api/sampletests.feature");
    }

    @AfterAll
    public static void tearDown() {
        if(context != null) {
            SpringApplication.exit(context, () -> 0);
            context.close();
        }
    }
}

空手道中的 Logback 被排除,因为它已经在类路径上并在启动 sprint 应用程序时抛出下面 -

java.lang.IllegalArgumentException:LoggerFactory 不是 Logback LoggerContext,但 Logback 位于类路径上。删除 Logback 或竞争的实现

这个问题的根本原因是什么?

java karate
1个回答
0
投票

尝试切换到“胖罐子”,看看是否有效果。请参阅“使用 Shaded JAR”部分此处

<dependency>
  <groupId>com.intuit.karate</groupId>
  <artifactId>karate-core</artifactId>
  <version>${karate.version}</version>
  <classifier>all</classifier>
  <scope>test</scope>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.