Spring Boot运行Karate测试时出现NoSuchMethodError的根因排查
运行Spring Boot+Karate测试时出现NoSuchMethodError的根本原因?
错误详情
执行测试时抛出以下错误:
java.lang.NoSuchMethodError: 'io.github.classgraph.ClassGraph io.github.classgraph.ClassGraph.acceptPaths(java.lang.String[])'
当前使用的Maven Karate依赖
<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(); } } }
前置依赖处理说明
此前启动Spring应用时曾遇到日志框架冲突错误,因此在Karate依赖中排除了Logback:
java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation
问题
请问导致上述NoSuchMethodError的根本原因是什么?
内容的提问来源于stack exchange,提问作者aman daharwal
相关产品推荐
相关产品推荐

