【发布时间】:2016-10-17 07:22:53
【问题描述】:
Intellij Run 视图显示每个单独测试的运行时间。 我有一个包含大约 800 个测试的模块,Intellij 指示大约 1s500 毫秒。但是,按照挂钟时间衡量,运行测试显然需要更长的时间。
这些是纯单元测试,没有外部系统(或文件系统)连接,因此它们是 100% CPU 绑定的(除非操作系统分页等,但我有大量内存,所以这不是问题)。
- 差异的来源是什么? Intellij 是否不考虑设置/拆卸和其他引导?
- 有什么方法可以让它显示运行所有测试所需的挂钟时间?
- 关于如何加快测试速度的任何想法(例如,我可以让它们并行运行吗?)
谢谢。
【问题讨论】:
-
计时信息可能来自 JUnit 本身,您可能想深入研究一下源代码,看看他们在哪里进行计时 - 我敢说他们只记录代码的时间测试方法,而不是之前/之后的方法。显示挂钟时间可能可以通过对整个运行计时的套件来完成。最后,我认为 JUnit 中有一个实验性的并行测试选项。
-
对于并行化位,这是另一种解决方案(特别适用于 junit 参数以及需要通过 powermock 模拟静态代码而并行套件选项无法安全处理的情况)stackoverflow.com/questions/38162802/…
-
我假设这与上下文启动时间(每个测试类一次)被排除在每次测试测量之外有关。
标签: java unit-testing intellij-idea