【问题标题】:Profile JUnit in Eclipse Indigo using VisualVM使用 VisualVM 在 Eclipse Indigo 中分析 JUnit
【发布时间】:2023-03-04 13:18:01
【问题描述】:

如何配置 JUnit 测试,优先使用 Eclipse 集成支持?我正在尝试使用 VisualVM 来完成,但显然无法完成。

我使用的是 Windows 7 x64、Eclipse Indigo、jdk 1.6、jre-j9 和 JUnit 3(我可以使用 v.4)

【问题讨论】:

  • 您在使用 VisualVM 时遇到了什么问题?我以前用过,效果很好。
  • @Axel 我可以使用它来启动 java 程序(使用 main 方法),但是当我尝试分析 JUnit(选择 VisualVM 作为启动器而不是 Eclipse JUnit Launcher)时,我收到 NullPointerException 错误消息框并且测试在 Eclipse 上运行。
  • @Axel 你是怎么做到的?
  • Err... 我启动 VisualVM 并连接到进程。

标签: java junit profiling profiler visualvm


【解决方案1】:

您可以使用 JVisualVM (%JAVA_HOME%/bin/jvisualvm.exe),但要与 JUnit 一起使用,您需要稍微更改运行配置。

  1. 运行一次 JUnit 测试,以创建运行配置
  2. 编辑运行配置 (Run->Run Configurations...)
  3. Test 选项卡中选中“调试时保持 JUnit 在测试后运行”框
  4. 重新运行测试(使用调试)。这将运行测试,但重要的是,保留 JVM,以便您可以使用 JVisualVM 附加到它。

如果您希望分析测试的特定部分,那么在前后设置断点将使您能够开始/停止分析。

【讨论】:

  • 我用 SpringJUnit4ClassRunner 运行 Spring JUnit 测试需要很长时间。选中此选项可以避免所有这些。谢谢!
  • 也许我遗漏了一些东西,但我发现重新运行测试会启动不同的虚拟机(不是被监控的虚拟机),因此不会收集任何数据。作为一种解决方法,我在构造函数/@Parameters 初始化中放置了一个断点,然后我可以在运行测试之前链接监视器。
  • 感谢您的提示。好的,解决方案很有效……您打开 jvisualvm,然后“采样”RemoteTestRunner,您可以从体验中获得一些有意义的反馈。但与 Nebeans 配置文件 Junit 测试相比,这种方法根本没有竞争力。根据单元测试的复杂性,你为强调它所做的数据量,除非找到一个像样的插件,否则我只会得到 vanilla netbeans,并让它进行分析。如果不值得花时间投资,那么使用 visualvm 采样方法是可以的。
  • @Stefan:您的链接似乎已损坏 - 我收到“找不到页面”。无论如何,我没有得到带有 Neon Release (4.6.0) 的 Nullpointer。
  • @timguy。谢谢。我的空指针异常是由于 VisualVm 启动器的设置中缺少指向 visualvm 可执行文件的路径,而不是由于 Neon(正如我首先假设的那样)。
【解决方案2】:

JProfiler 有一个支持 JUnit 运行配置的 eclipse 插件。请参阅 here 以获取有关 eclipse IDE 集成的屏幕截图。

要在测试完成后保持 JVM 处于活动状态(以便您可以分析结果),请编辑分析设置并在“其他”选项卡上选择“保持 VM 活动”。

免责声明:我公司开发 JProfiler。

【讨论】:

  • 是否有测试期,还是必须提前购买?
  • 下载时有10天的评估期,但也可以获得更多时间。
【解决方案3】:

Startup Profiler Plugin 是使用 VisualVM 分析应用程序启动或短期运行进程(如测试)的一个简洁选项。

插件提供的命令行参数必须复制到VM参数下的启动配置中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多