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

时间:2013-11-27 05:53:10

标签: report 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>

现在它每次都在创建一个新文件夹,但它有时只存储emailalablereport。我该怎么办,我不想自定义报告我只想在每次运行套件时将报告存储在新文件夹中。我更改了构建文件,它正在运行,但我们正在执行xml文件,而不是构建。

提前致谢 史密斯

1 个答案:

答案 0 :(得分:0)

使用setOutputDirectory()时,我看到过类似的行为。但是,当我改变实施时,它对我有用。我没有在设计时创建一个testng xml,而是使用TestNG XmlSuite类动态创建一个。然后使用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()或你的初始化中使用它......