2012-05-23 73 views
1

我正在远程运行JUnit测试套件,并使用Ant从本地计算机到大约30分钟超时的远程服务器。由于JUnit在每次测试后输出.E,因此可以使用javac/java运行这些JUnit测试。这个连续的输出使得ssh连接在测试套件需要运行的大约9个小时内保持活动状态。然而,对于Ant来说,测试套件完成之前没有任何输出,这会过早地杀死测试过程。我尝试了几种不同的结果报告方法(写入文件,几乎所有格式化选项等)。在远程运行期间避免SSH超时Ant JUnit测试

我的问题可以是:

我怎样才能保持SSH连接足够长活着为我的测试套件来完成?我没有访问权限来更改任何ssh连接设置,并且由于代码位于远程服务器上,所以在每次测试之前/期间/之后,我无法从本地计算机向服务器发送任何内容。

我如何设置蚂蚁打印/呼应测试期间某种输出?在终端中不显示使用Java的ProcessBuilder的回显。

回答

3

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

亚历克西斯

+0

这是完美的(我希望我早些时候知道)!初始测试显示事情按预期工作,所以现在我要运行大约一个小时的测试,以便发生自然超时。我会接受你的答案,一旦我得到该场景工作:) – Chris

+0

好吧,尝试了几次后,我仍然得到“nohup:忽略输入和追加输出到'nohup.out'”,然后30-45分钟后, “写失败:损坏的管道“以及Ant通常写入的文件为空。我会更深入地研究nohup,因为它看起来正是我所需要的。 – Chris

+0

您得到的第一条消息是正常的:它只是说它在运行时不会读取stdin,并且会将stdout写入'nohup.out'文件,您应该在触发命令的路径中找到该文件。 _Broken pipe_错误很奇怪:你确定这是链接到ssh连接吗? – Alexis

1

在假设防火墙查杀连接,因为它认为它是无效的,尝试在~/.ssh/config ServerAliveInterval设置为15个左右。

或者,尝试在Tmux或GNU屏幕会话中运行测试套件。你的SSH连接仍然会中断,但你的测试将继续运行,你将能够重新连接它们。

相关问题