Java - 以编程方式关闭TestNG的默认记者

Var*_*oli 4 java testng reportng

我有一个应用程序,我需要从我的main方法执行我的TestNG @Test注释方法,并使用ReportNG生成报告.

我的主要方法如下:

public static void main(String args[])
{
    TestNG myTestNG = new TestNG();
    XmlSuite mySuite = new XmlSuite();
    mySuite.setName("Sample Suite");
    mySuite.addListener("org.uncommons.reportng.HTMLReporter");
    mySuite.addListener("org.uncommons.reportng.JUnitXMLReporter");
    XmlTest myTest = new XmlTest(mySuite);
    myTest.setName("Sample Test");
    List<XmlClass> myClasses = new ArrayList<XmlClass>();
    myClasses.add(new XmlClass("com.varunmulloli.testng.SampleTest"));
    myTest.setXmlClasses(myClasses);
    List<XmlTest> myTests = new ArrayList<XmlTest>();
    myTests.add(myTest);
    mySuite.setTests(myTests);
    List<XmlSuite> mySuites = new ArrayList<XmlSuite>();
    mySuites.add(mySuite);
    myTestNG.setXmlSuites(mySuites);
    myTestNG.run();
}
Run Code Online (Sandbox Code Playgroud)

我的SampleTest班级看起来像这样:

public class SampleTest 
{
    @Test
    public void testSample() 
    {
        String str = "TestNG is working fine";
        assertEquals("TestNG is working fine", str);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码运行正常,但在test-output文件夹中,我得到了默认TestNG报告器生成的报告以及ReportNG报告.如何以编程方式禁用默认报告者?

在TestNG中关闭测试输出 - 这个问题与我的类似,但它没有讨论以编程方式禁用它.

Var*_*oli 6

找到了答案.

myTestNG.setUseDefaultListeners(false);
Run Code Online (Sandbox Code Playgroud)