You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ IDEA中使用TestNG运行测试时提示“No tests found in the class”求助

解决Maven+TestNG项目“No tests found in the class”及循环缓冲区错误

核心诱因

这类问题基本是Java版本/SDK不匹配、TestNG依赖冲突或IDE运行配置混乱导致的,尤其是切换Java版本后,项目编译环境和运行环境脱节,引发一系列连锁报错。

分步修复方案

1. 统一全项目Java版本配置

  • 检查并修正pom.xml中的Java版本参数,确保和IDE项目SDK完全一致:
    <properties>
        <maven.compiler.source>11</maven.compiler.source> <!-- 替换为你实际使用的版本,如8/17 -->
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    
  • IDE同步设置:打开File > Project Structure,依次确认Project SDK、Project Language Level、Modules模块的Language Level全部与pom.xml配置对齐。

2. 清理TestNG依赖冲突

  • 在pom.xml中指定明确的TestNG版本,避免与IDE内置版本不兼容:
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>7.8.0</version> <!-- 选用稳定兼容的版本 -->
        <scope>test</scope>
    </dependency>
    
  • 执行Maven命令清理旧依赖并重新下载:
    mvn clean install -U
    

3. 重置IDE测试运行配置

  • 删除旧的TestNG运行配置:打开Run > Edit Configurations,找到之前手动创建的TestNG配置,右键删除。
  • 重新生成配置:右键目标测试类/方法,选择Run 'TestClassName',让IDE自动生成适配当前环境的运行配置。
  • 调整缓冲区参数:如果仍出现循环缓冲区报错,在运行配置的VM options中移除旧的-Didea.test.cyclic.buffer.size=...参数,或设置合理值(如-Didea.test.cyclic.buffer.size=1048576)。

4. 验证测试类合法性

  • 确认TestNG注解导入正确,避免和JUnit注解混淆:
    import org.testng.annotations.Test;
    
    public class SampleTest {
        @Test // 必须是org.testng包下的@Test注解
        public void testCase() {
            // 测试逻辑
        }
    }
    
  • 检查测试类是否位于src/test/java目录下,Maven默认仅识别该目录内的测试类。

5. 清除IDE缓存

  • 执行File > Invalidate Caches...,选择Invalidate and Restart,解决IDE缓存残留导致的配置混乱问题。

内容的提问来源于stack exchange,提问作者BeepBop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:35:12