想要将TestNg报告存储在带有时间戳的单独文件夹中



我想将我的报告存储在另一个文件夹中,而不是带有时间戳的测试输出所以我添加了一个程序:

public class Customreporter implements IReporter
{   
    File fd = new File("");
    String date;
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd_hh-mm-ss");
    String folderNameWithTimeStamp = df.format(new Date());
    String currentDir = System.getProperty("user.dir") + "//Reports//";
    String finalPath = currentDir + folderNameWithTimeStamp;
    @SuppressWarnings("deprecation")
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) 
    {
        TestNG.getDefault().setOutputDirectory(finalPath);
        TestNG.getDefault().setXmlSuites(xmlSuites);
    }
}

并将我的xml更改为

<suite name="suitedemo" parallel="false">
    <listeners>
        <listener class-name="com.validation.Customreporter">
    </listeners>
    <test name="suitetestdemo">
        <suite-files>
            <suite-file path="./exceptions.xml" />
            <suite-file path="./screenshot.xml" />
        </suite-files>
    </test>
</suite>

现在,它每次都会创建一个新文件夹,但有时只存储电子邮件报告。我能做什么?我不想自定义报告,我只想每次运行套件时都将报告存储在新文件夹中。我更改了构建文件,它正在运行,但我们正在执行xml文件,而不是构建。

提前感谢Smith

我在使用setOutputDirectory()时看到过类似的行为。但当我改变实现时,它对我来说很有效。我没有在设计时创建testng.xml,而是使用TestNGXmlSuite类动态创建一个。然后使用setOutputDirectory()设置不同的输出目录。如果你需要更多的帮助,请告诉我。

在高水平上,

XmlSuite suite = new XmlSuite();
suite.setSuiteFiles(files);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);

我还没有测试setSuiteFiles(),因为我有类级别的testng.xml。此外,这不需要是一个倾听者。您可以在main()或init中使用它。。。。。。。

最新更新