java使用Eclipse远程运行Junit测试,就像在本地运行一样
我四处搜索,在这个网站和其他网站上阅读相关问题,但没有找到解决方案。我感到奇怪的是,一个人并不存在,所以让我在这里详细说明我的问题:
我定期使用Junit4+Eclipse来测试我的代码。在某些情况下,某些测试可能会占用大量CPU和/或内存,使我的工作站在测试期间无法使用。这是我试图解决的难题
我希望通过远程服务器获得完全相同的行为。我想:
- 仍然能够设置断点并调试我的应用程序李>
- 使用Eclipse中的Junit视图查看测试的进度李>
- 单击按钮启动测试(允许生成过程和文件复制,但只有在有效的情况下)李>
在我看来,我设想了一些东西,将文件同步到远程服务器,在那里用与本地机器上完全相同的参数启动java进程,使调试端口可用(不仅仅是本地主机),并将eclipse连接到它,使调试和junit视图都能工作
我怎样才能做到这一点
可能有助于我们找到解决方案的几个主要问题:
- 在本地运行时,Eclipse如何与java进程通信(用于调试目的和Junit视图)李>
- 我如何参与JUnit测试的java过程,以便将所需文件复制到远程服务器李>
- 如何使进程从远程而不是本地生成李>
- 如何让Eclipse连接到远程主机而不是本地主机李>
# 1 楼答案
您可以设置jenkins CI服务器,通过git同步代码(或者使用ftp或其他方式进行复制),在git钩子或通过脚本触发的jenkins作业中执行测试。然后,像尤金·库莱肖夫建议的那样,远程调试到正在运行的测试过程中。这个过程可以由您从eclipse调用的ant脚本自动化。应该有一个mylin连接器(for example),通过它可以监视正在运行的测试。我不知道是否可以使用eclipse的标准JUnit视图来查看正在运行的测试,而不使用一些自定义插件(如果有的话)
# 2 楼答案
最简单的方法是使用以下命令在远程mashine上调用command line JUnit runner:
因此,它将一直等待,直到您从Eclipse在端口8998连接远程调试器为止
您还可以使用Eclipse的Target Management工具将文件传输到远程系统并启动远程命令。项目页面上有几个教程