1

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

我的问题是:

如何使 SSH 连接保持足够长的时间以完成我的测试套件?我无权更改任何 ssh 连接设置,并且由于代码位于远程服务器上,因此我无法在每次测试之前/期间/之后从本地计算机向服务器发送任何内容。

或者

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

4

2 回答 2

3

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

亚历克西斯

于 2012-05-23T14:06:54.007 回答
1

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

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

于 2012-05-23T14:09:54.530 回答