我正在使用 Ant 从本地计算机远程运行 JUnit 测试套件到远程服务器,超时时间为 ~30 分钟。使用 javac/java 运行这些 JUnit 测试工作正常,因为 JUnit 在每次测试后都会输出一个.
或E
。此连续输出使 ssh 连接在测试套件需要运行的 ~9 小时内保持活动状态。然而,对于 Ant,在测试套件完成之前没有任何输出,这过早地扼杀了测试过程。我尝试了几种不同的结果报告方法(写入文件,几乎所有格式选项等(。
我的问题是:
如何使 SSH 连接保持足够长的时间以使我的测试套件完成?我没有访问权限/权限来更改任何 ssh 连接设置,并且由于代码在远程服务器上,因此在每次测试之前/期间/之后,我无法从本地计算机向服务器发送任何内容。
或
如何设置 Ant 以在每次测试期间打印/回显某种输出?将 echo 与 Java 的 ProcessBuilder 一起使用不会显示在终端中。
是否有参数可以避免超时(可能是服务器端(,但您应该考虑使用 NOHUP 命令(参见 NOHUP(。这将允许您在不停止命令的情况下启动命令并关闭 ssh 会话。
亚历克西斯
防火墙因为看到连接处于非活动状态而终止连接,请尝试在~/.ssh/config
中将ServerAliveInterval设置为15左右。
或者,尝试在 Tmux 或 GNU 屏幕会话中运行测试套件。您的 ssh 连接仍会中断,但您的测试将继续运行,您将能够重新连接到它们。