我正在使用testNG进行移动自动化,我想关闭我发布的多个命令提示符(appium服务器)。为此,我使用以下代码
@AfterSuite
public void closeCommandPrompts() throws IOException, InterruptedException{
System.out.println("After suite");
Thread.sleep(8000);
Runtime.getRuntime().exec("taskkill /F /IM node.exe");
System.out.println("closed node.exe");
Runtime.getRuntime().exec("taskkill /F /IM cmd.exe");
最后一行,如果我将它传出来工作正常,但是如果它们没有被注释,它会在分叉过程中出错。
我猜testNG在内部使用命令提示符,当我在@aftersuite中使用taskkilll时,我试图关闭它。
请帮我解决一些问题。
答案 0 :(得分:1)
您可以使用以下代码:
CommandLine command = new CommandLine("cmd");
command.addArgument("/c");
command.addArgument("taskkill");
command.addArgument("/F");
command.addArgument("/IM");
command.addArgument("node.exe");
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(1);
try {
executor.execute(command, resultHandler);
System.out.println("Stopped appium node ! ");
} catch (IOException e) {
System.out.println("FAIL => Unable to stop appium server "+e.getMessage());
e.printStackTrace();
}