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

TestNG 7.x版本套件层级报告无法识别通过SkipException跳过的测试

问题原因

TestNG 7.x对跳过测试的统计逻辑做了默认调整:仅因依赖失败、配置执行失败导致的被动跳过用例,才会被计入套件层级的skipped统计中;测试代码/监听器中主动抛出SkipException的用例,默认不会被纳入套件层级的跳过统计。

解决方法

方法1:修改testng.xml配置(最简单)

在<suite>标签中添加skipped-policy="ALL"属性,强制套件层级统计所有类型的跳过用例,修改后的配置如下:

<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="TestSuite" verbose="2" skipped-policy="ALL">
    <test name="MyTests">
        <classes>
            <class name="MyTestClass">
                <methods>
                    <include name="testMethod"></include>
                </methods>
            </class>
        </classes>
    </test>
</suite>

注意:原配置中存在中文双引号的语法问题,会导致TestNG解析xml失败,修改配置时请统一使用英文双引号。

配置修改后重新执行测试,套件层级就能正常统计主动抛出SkipException的跳过用例。

方法2:自定义统计逻辑

如果不想修改全局配置,可以直接使用你在ITestListener中已经存入ITestContext的测试结果集合统计数据,避免依赖TestNG自带的统计逻辑。另外你贴出的ISuiteListener代码存在语法错误,修正后自定义统计的示例如下:

public class MySuiteListener implements ISuiteListener {
    @Override
    public void onStart(ISuite suite) {
    }

    @Override
    public void onFinish(ISuite suite) {
        int totalPass = 0;
        int totalFail = 0;
        int totalSkip = 0;
        Map<String, ISuiteResult> results = suite.getResults();
        for (Map.Entry<String, ISuiteResult> result : results.entrySet()) {
            ISuiteResult suiteResult = result.getValue();
            ITestContext suiteContext = suiteResult.getTestContext();
            // 直接读取你在ITestListener中存储的自定义结果集合
            List<ITestResult> allResults = (List<ITestResult>) suiteContext.getAttribute("myTest");
            for (ITestResult r : allResults) {
                switch (r.getStatus()) {
                    case ITestResult.SUCCESS: totalPass++; break;
                    case ITestResult.FAILURE: totalFail++; break;
                    case ITestResult.SKIP: totalSkip++; break;
                }
            }
        }
        Logger.print("passed=" + totalPass, "failed=" + totalFail, "skipped=" + totalSkip);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 18:27:03