我目前正在努力为我们的一个 java 应用程序创建测试用例。在我的代码中,我的 java 应用程序调用了一个批处理文件,该批处理文件又启动了一个单独的 java 进程,该进程返回一个错误代码,我需要从调用 java 应用程序中使用该错误代码。我正在执行以下操作来调用我的批处理文件:
Process process = runTime.exec(new String[]{"cmd.exe","/c",scriptPath});
exitValue = process.waitFor();
批处理文件如下:
@echo off
cd %~dp0
java -cp frames.FrameDriver
SET exitcode=%errorlevel%
exit /B %exitcode%
现在有了上面的代码和批处理文件,我的 JUnit 框架就挂在这个特定的测试用例上,就好像它在等待它结束一样。现在,当 JUnit 挂在测试用例上时,转到任务管理器并结束 java.exe 进程将允许 JUnit 框架继续处理其他用例。
通过双击运行 .bat 文件可以正常运行 Java 应用程序。
START
在我的批处理文件中的命令之前添加批处理命令java
似乎可以解决挂起问题,但我似乎无法从我的 Java 应用程序中获得正确的退出代码,因为它始终为 0。(Java 应用程序使用 System .exit(INTEGER_VALUE))。我假设 %errorlevel% 值被“start”命令自己的退出值覆盖。
谁能告诉我如何解决这个问题?
谢谢。
PS:如果有什么不同,我使用的是 JDK 5 和 Netbeans 5.5.1。