gpt4 book ai didi

java - Gradle的java插件如何并行运行JUnit测试: one queue per fork or a single queue and multiple forks?

转载 作者:行者123 更新时间:2023-11-30 08:44:42 24 4
gpt4 key购买 nike

我最近一直在尝试 Gradle,我之前没有任何使用经验,但到目前为止我已经能够做我想做的事情并且对结果感到满意。但是,在我的例子中,我必须使用 JUnit 运行 Selenium 测试,其中一些测试比其他测试大得多(即:25 分钟对 4 分钟)。

当使用 maxParallelForks 选项时,有时它花费的时间比我预期的要长,因为测试似乎是事先分配给 fork 的,有时我最终会得到空闲的 fork ,而其中一个是坚持一个长测试,当它完成其他较短的测试后运行(它可以在任何其他可用的分支中运行)。

长话短说:当并行运行测试时,Gradle 似乎分配测试就像有多个队列(每个叉一个),我希望它像一个单独的队列,叉在队列中进行下一个测试。

举个题外话的例子,我的情况就像在超市排队,旁边的都是空的,但你无法改变。

最佳答案

是后者。 gradle 使用一个队列并将每个条目顺时针分配给正在运行的进程。假设您有 4 个测试:

  • 测试 1 耗时 10 秒
  • Test2 花费 1s
  • Test3 耗时 10 秒
  • Test4 花费 1s

并使用 maxParallelForks = 2 总体测试任务执行时间约为 20 秒。我想我们需要讨论是否可以通过在 Test2 1 秒后返回后通知“空闲”进程将 Test3 直接分配给测试工作进程 2 来改进这一点。

关于java - Gradle的java插件如何并行运行JUnit测试: one queue per fork or a single queue and multiple forks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33681345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com