使用Eclipse远程运行Junit测试,就好像它在本地运行一样



我四处搜索,阅读了本网站和其他网站上的相关问题,但未能找到解决方案。我觉得奇怪的是,一个不存在,所以让我在这里详细说明我的问题:

我经常使用Junit4+Eclipse来测试我的代码。在某些情况下,某些测试可能会占用大量CPU和/或内存,导致我的工作站在测试期间无法使用。这是我正在努力解决的问题。

我希望通过远程服务器获得完全相同的行为。我想要:

  1. 仍然能够设置断点并调试我的应用程序
  2. 使用Eclipse中的Junit视图查看测试的进展情况
  3. 单击一个按钮开始测试(允许构建过程和复制文件,但前提是高效)

在我的脑海中,我设想将文件rsyncs到远程服务器,在那里用与本地机器上完全相同的参数启动java进程,使调试端口(而不仅仅是localhost)可用,并使eclipse连接到它,以使调试和junit视图都能工作。

我该怎么做?

几个可能帮助我们找到解决方案的主要问题:

  1. Eclipse在本地运行时(出于调试目的和Junit视图)如何与java进程通信
  2. 我如何参与为JUnit测试生成java进程的过程,以便将所需的文件复制到远程服务器
  3. 如何使进程在远程生成而不是在本地生成
  4. 如何让Eclipse连接到远程主机而不是本地主机

最简单的方法是使用以下命令在远程mashine上调用命令行JUnit runner:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8998,server=y,suspend=y -cp ... org.junit.runner.JUnitCore <test class name>

因此,它将等待,直到您在8998端口连接来自Eclipse的远程调试器。

您还可以使用Eclipse的目标管理工具将文件传输到远程系统并启动远程命令。项目页面上有几个教程。

您可以设置一个jenkins CI服务器,通过git同步代码(或者只是使用ftp或其他东西复制),在由git钩子触发的jenkins作业中或通过一些脚本执行测试。然后像Eugene Kuleshov建议的那样,远程调试到正在运行的测试过程中。这个过程可以通过从eclipse调用的ant脚本来实现自动化。应该有一个mylin连接器(例如),通过它可以监视正在运行的测试。我不知道是否可以使用eclipse的标准JUnit视图来查看正在运行的测试,而不使用一些自定义插件(如果有的话)。

尝试使用vs代码进行远程ssh扩展。

相关内容

最新更新