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

时间:2012-03-27 16:52:30

标签: java eclipse junit

我一直在搜索,阅读本网站和其他人的相关问题,但未能找到解决方案。奇怪的是,一个不存在让我感到奇怪,所以让我在这里详述我的问题:

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

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

  1. 仍然可以设置断点并调试我的应用程序。
  2. 使用Eclipse中的Junit视图查看测试的进展情况。
  3. 单击按钮开始测试(允许构建过程和文件复制,但仅在有效的情况下)。
  4. 在我看来,我设想将文件rsyncs到远程服务器的东西,使用与本地机器上完全相同的参数启动java进程,使调试端口可用(不仅仅是localhost)并具有eclipse钩子由它来调试和junit视图都可以工作。

    我怎样才能完成这项工作?

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

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

3 个答案:

答案 0 :(得分:6)

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

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

因此,它将等待您从Eclipse端口8998连接远程调试器。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

为此尝试使用vs代码远程ssh扩展。