我遇到了一个问题,即我能够根据所需的移动设备创建数量来动态创建TestNG xml文件。但是,我遇到了一个麻烦,如果需要,可以在安装Suite之前设置Dynamic Xml File,直到会话/当前运行时结束后xml文件才会更新。我想让它更新以与同一会话同步的方式编译当前设置,而不是先运行测试以失败来更新文件,然后再次运行它以获取所需的文件。
编辑:转换文件后,我试图在StreamResult中关闭FileOutStream,但是在会话完成后,我仍然得到新的XML结果。在同一会话期间,@ Test方法仍会调用旧的xml文件版本。
以下是动态设置完成后创建我的XML文件的方法:
public void createDriverFile() throws TransformerConfigurationException {
DOMSource source = new DOMSource(doc);
File newVersionFile = new File("./drivers.xml");
FileOutputStream streamNewFile = new FileOutputStream(newVersionFile);
StreamResult result = new StreamResult(streamNewFile);
try {
transformer.transform(source, result);
result.getOutputStream().flush();
System.out.println("File Updated");
} catch (TransformerException e) {
e.printStackTrace();
System.out.println("Error updating the file");
} catch (IOException e) {
e.printStackTrace();
System.out.println("Unable to close output stream");
}
}