我们有测试java应用程序。
此应用程序执行不同类型的测试。第一步启动 Silk Test。
这个应用程序使用 System.out.println 写了很多痕迹。
我们将此跟踪重定向到我们的 cmd 文件中的文件 app.trace。
像这样的东西:
java com.test.app > app.trace
当此测试应用程序停止时,无法删除 app.trace 文件,因为它已被 Silk Test Open Agent 锁定。
我不明白这个应用程序如何锁定我们的跟踪文件。
我们不直接从我们的代码启动这个应用程序。
我们使用 Silk4J 库来启动 Silk Test。
据我所知,这个库连接到启动 Silk Test Open Agent 的 Silk Test windows 服务。
有谁能解释一下 - 为什么以及如何 Silk Test Open Agent 锁定我们的跟踪文件?
最佳答案
这是因为 Open Agent 在测试完成时没有关闭。当我的套件完成后,我就杀掉 Open Agent。
public class ProcessKill {
public void killOpenAgent () {
kill ("openAgent.exe");
}
public void kill (String processName) {
String command = "cmd /c taskkill";
String parameter = " /F /IM " + processName;
System.out.println("Killing process: " + processName);
try {
Runtime.getRuntime().exec(command + parameter);
} catch (IOException e) {
e.printStackTrace();
}
}
}
我正在使用 TestNG 来控制我的测试,所以我只是从 @AfterSuite 方法中调用它,以始终确保在每次运行后关闭 Open Agent。这也有助于发布许可证。
关于java - Silk Test Open Agent 锁定跟踪文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607459/