背景: 我正在使用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);
}
}
}
}
答案 0 :(得分:1)
如果要执行测试并将其从结果报告中隐藏,可以查看一下TestNG TestListenerAdapter。执行后可以修改测试上下文,例如从中删除不需要的测试。有关详细示例,请参见this link。
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.
}
Here是所有TestNG侦听器的文档。这些也可能有用。
答案 1 :(得分:0)
在@Test批注中,可以将enabled = false设置为避免执行: