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