【发布时间】:2021-05-26 11:47:30
【问题描述】:
我有一些运行速度相对较慢的组件测试(每个测试几秒钟),并试图找出哪些函数占用的时间最多。当我运行 JUnit 测试时,有没有一种方法可以在 Eclipse 中向我显示,可能类似于覆盖率数据?
我已经尝试过为此使用 VisualVM,但我遇到的问题是测试过程仅在测试运行时可用,所以我能做的最好的就是在测试开始时放置一个断点,然后调试测试,附加 VisualVM 分析器,然后取消暂停测试,遗憾的是,这意味着无论我需要取消暂停测试几秒钟,都会使统计数据膨胀。
感觉应该有某种方式说“开始测试和分析方法执行时间”,但我现在一直在寻找一些不同的选项(例如 Eclipse 的 Java Monitor 插件),但似乎没有一个提供那个选项?
有没有办法做到这一点?还是暂停每个测试然后手动附加分析器真的是最好的解决方案?
也许与此有关,如果我有一个测试用例套件,如何在运行任何测试之前附加分析器?
【问题讨论】:
-
我一直将 JProfiler 与 Eclipse 一起使用,并且从未遇到过附加分析器、必须命中正确实例等问题。您可能想尝试一下 VisualVM。
-
@RalfKleberhoff :看起来很有趣,但是如何让它在 Eclipse 中工作?我安装并集成它,使用 -clean 启动 eclipse,启用配置文件操作,但由于某种原因,如果我右键单击测试并说
Profile as...,则没有可用的操作,我不知道如何添加分析配置。我希望有一个Profile as... > JUnit Test或Profile as... > JProfiler可用,但没有。 -
抱歉,我不记得我在 Eclipse 中必须采取的步骤。在我的 Eclipse 中,上下文菜单中有
Profile as... > JUnit Test,然后它会启动 JProfiler。在 Window / Preferences 中,您是否设置了 JProfiler 可执行文件 .EXE 位置? -
@RalfKleberhoff :对我来说,“Profile as...”下的唯一选项是“Profile on Server”,这似乎没有任何作用,并且添加新的 Profiling 配置似乎也只添加新的服务器内容。 “JProfiler 可执行 .EXE 位置”是什么意思?我查看了
Window.Preferences,但找不到此设置。我需要安装额外的插件吗?在安装 JProfiler 时,我确实将它与 Eclipse 集成,但仔细想想,我看不到任何迹象表明该集成有效。 -
对不起,那我也帮不上忙了,也许一些 JProfiler 支持论坛可以回答这个问题。
标签: java eclipse junit profiling