使用TestNG时出现java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory错误
问题原因与解决方案
你的代码本身没有问题,报错是因为TestNG 7.0+版本依赖SLF4J日志框架,而你的项目中缺少这个必要的依赖包,导致JVM无法找到org.slf4j.LoggerFactory类。
解决步骤
根据你的项目构建方式,选择对应的方案:
1. Maven项目
在pom.xml的<dependencies>节点中添加以下依赖:
<!-- SLF4J核心API --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> <scope>test</scope> </dependency> <!-- SLF4J简单日志实现(适合测试场景) --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> <scope>test</scope> </dependency>
执行mvn clean test刷新依赖后,重新运行测试即可。
2. Gradle项目
在build.gradle的dependencies块中添加:
testImplementation 'org.slf4j:slf4j-api:1.7.36' testImplementation 'org.slf4j:slf4j-simple:1.7.36'
执行gradle clean test刷新依赖后运行测试。
3. 手动管理JAR包
- 下载对应版本的SLF4J JAR包:
slf4j-api-1.7.36.jar和slf4j-simple-1.7.36.jar - 将两个JAR包放到项目的
lib目录下,在IDE中把它们添加到项目的classpath中 - 重新运行TestNG测试
注意:版本建议和你使用的TestNG 7.8.0匹配,1.7.x系列的SLF4J兼容TestNG 7.x版本。
内容的提问来源于stack exchange,提问作者taerese
相关产品推荐
相关产品推荐

