在远程运行Ant JUnit测试期间避免SSH超时

时间:2012-05-23 13:57:53

标签: ant junit ssh

我正在远程运行一个JUnit测试套件,使用Ant从本地计算机到远程服务器,超时约30分钟。使用javac / java运行这些JUnit测试工作正常,因为JUnit在每次测试后输出.E。这个连续输出使ssh连接保持活动状态,测试套件需要运行大约9个小时。但是对于Ant,在测试套件完成之前没有任何输出,这会过早地破坏测试过程。我尝试了几种不同的结果报告方法(写入文件,几乎所有格式化选项等)。

我的问题是:

如何让SSH连接保持足够长时间以便我的测试套件完成?我没有访问/权限来更改任何ssh连接设置,因为代码在远程服务器上,所以在每次测试之前/期间/之后我都无法从本地机器向服务器发送任何内容。

如何设置Ant在每次测试期间打印/回显某种输出?在Java中使用echo的ProcessBuilder不会显示在终端中。

2 个答案:

答案 0 :(得分:3)

我不知道是否有一个参数来避免超时(可能是服务器端),但你应该考虑使用NOHUP命令(参见NOHUP)。这将允许您启动命令并关闭ssh会话而不停止命令。

亚历

答案 1 :(得分:1)

假设防火墙因为看到它处于非活动状态而终止连接,请尝试在~/.ssh/config中将ServerAliveInterval设置为15左右。

或者,尝试在Tmux或GNU Screen会话中运行测试套件。您的ssh连接仍会中断,但您的测试将继续运行,并且您将能够重新连接它们。