当前位置: 首页 > 知识库问答 >
问题:

如何从TestNG结果或ITestContext中删除任何测试

拓拔野
2023-03-14

背景:我正在使用TestNG DataProvider

要求:执行完成后需要从TestNG报告中删除1个测试。

我的解决方案:假设,我需要从报告中删除“XYZ”测试用例。

String testName = "XYZ";

private void removeTestFromResult(ITestContext context)
    {
        for (ITestNGMethod testMethodName : context.getAllTestMethods())
        {
            String testMethod = testMethodName.getMethodName().toLowerCase();

            if (testMethod.contains(testName))
            {
                if (context.getPassedTests().size() > 0)
                {
                    context.getPassedTests().removeResult(testMethodName);
                }
                if (context.getFailedTests().size() > 0)
                {
                    context.getFailedTests().removeResult(testMethodName);
                }
                if (context.getSkippedTests().size() > 0)
                {
                    context.getSkippedTests().removeResult(testMethodName);
                }
            }
        }
    }

共有2个答案

乌骏
2023-03-14

在@Test注释中,可以将enabled设置为false以避免执行:

https://testng.org/doc/documentation-main.html#annotations

蒋茂材
2023-03-14

如果要执行测试并从结果报告中隐藏它,可以查看TestNG TestListenerAdapter。可以在执行后修改测试上下文,例如从中删除不需要的测试。有关详细示例,请参阅此链接。

TestListenerAdapter:

public class MyTestListenerAdapter extends TestListenerAdapter {

    @Override
    public void onFinish(ITestContext context) {
        //TODO remove the unwanted tests from context.getPassedTests()
    }
}

测试

@Listeners(MyTestListenerAdapter.class)
public class MyTest {
    //Your test methods here.
}

下面是所有TestNG侦听器的文档。这些也很有用。

 类似资料:
  • 问题内容: 我有一个时间周期性地与一些不同的任务; 我也有Runnable与此计划程序一起使用的不同之处。当我想从调度程序中删除任务之一时,问题就开始了。 有没有办法做到这一点? 我可以使用一个调度程序完成不同的任务吗?实现此目的的最佳方法是什么? 问题答案: 只需取消以下项返回的未来: 要注意的另一件事是,取消不会从计划程序中删除任务。它所确保的是isDone方法总是返回true。如果继续添加此

  • 问题内容: 为了进行研究,我需要从@AfterMethod运行测试方法(@Test)后捕获结果状态(“通过” /“失败”)。 我一直在使用导入org.testng.ITestResult; 我的研究成果使访问多个在线博客后使我的工作变得更加轻松,但是, 即使断言失败 了, 也 似乎并没有像预期的那样成功,因为结果输出总是通过。 我的代码如下: 结果在控制台中: 我的期望是将测试结果转换为变量以通过

  • 问题内容: 我对mongo和nodejs相当陌生,由于查询的结果是json,我只想将结果作为http请求返回,如下所示: 它有效,唯一的问题是我想从结果中隐藏_id字段(递归)。有建议以优雅的方式做到这一点吗? 问题答案: 试试这个解决方案:

  • 注意:我没有看到我的原始JSON,也不知道包装器元素是谁或什么。

  • 本文向大家介绍如何从TestNG中的测试用例集合中合并和删除测试方法?,包括了如何从TestNG中的测试用例集合中合并和删除测试方法?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助testng xml文件中的<groups>标记从执行中合并和删除测试方法。 示例 Testng xml文件。 testNG xml具有要包含的Smoke组和要从执行中排除的CodingModule组。 示例 在

  • 而且,如果从Eclipse运行这样的测试,即使测试被移除,当套件完成时,失败仍然会打印在日志中。 关于RetryAnalyzer:我根本不考虑使用RetryAnalyzer的良好/最佳实践,但如果您发现自己处于需要解决问题的情况下,例如,您继承了一个依赖RetryAnalyzer的测试套件,您可能会发现这很有用。