结论:我有一个由Maven的故障安全集成测试插件运行的junit测试类,其中有几个测试可以实现无限并行化。它们针对已部署的云平台运行,作为构建推广的大门。这些测试中的每个测试在开始时都有一个快速记忆峰值,但其后续使用率非常低,并基本上进行了轮询,直到动作完成。交错并行测试在junit开始?
我需要所有的测试并行运行(因为他们把负载放在一个队列上,导致缩放操作使作业运行得更快),这很容易实现失效保护,但我还需要错开内存尖峰开始,所以我不会耗尽内存。
我应该如何完成它们?目前的实现做了一个Thread.sleep(random)
,但仍然有一个体面的统计概率,足够的重叠可能会导致内存不足。我应该把Semaphore
放在测试课上,然后在@Before
方法中等待吗?这是我可以使用自定义JUnit跑步者更轻松地完成的事情吗?
我也有这个想法。这肯定会奏效,但我不确定我需要密切关注我的记忆(一次一个)。一次可能有五个左右可能会很好?无论如何,因为它会起作用,所以有一个upvote。 –