Я столкнулся с проблемой, когда я могу динамически создать XML-файл TestNG на основе необходимого количества созданных мобильных устройств. Однако я попадаю в ловушку, где при желании файл Dynamic Xml настраивается во время установки Before Suite, файл xml не обновляется до тех пор, пока не закончится сеанс / текущая среда выполнения. Я хотел бы, чтобы он обновлял скомпилированную текущую настройку синхронно с тем же сеансом, а не запускал мои тесты сначала с ошибками для обновления моего файла, а затем снова запускал его, чтобы получить то, что я желаю.
Редактировать: я пытался закрыть FileOutStream в StreamResult после преобразования файла, но я все еще получаю новые результаты 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");
}
}