gpt4 book ai didi

selenium - Geb、Spock、Gradle 和 maxParallelForks

转载 作者:行者123 更新时间:2023-12-03 03:07:32 25 4
gpt4 key购买 nike

我在理解 Geb/Spock 测试中遇到的问题时遇到了一些麻烦。我们正在使用 gradle,我们正在尝试并行运行我们的测试。据我了解,gradle 中的 maxParallelForks 属性将运行测试 类(class) 在单独的 JVM 中。

我遇到的问题是当我有 6 个测试类并将 maxParallelForks 设置为 4 时,当测试开始时,我将获得 4 个并行运行的测试类。惊人的!但最后的 2 节课是问题所在。假设在前 4 节课中,2 节课在 1 分钟内完成,2 节课在 5 分钟内完成。我所看到的不是前 2 个完成并开始接下来的 2 个类(class),它似乎要等到最后 2 个长时间运行的类(class)完成后再启动其他 fork 。这远非理想。

我是误会了什么,还是我在某处遗漏了某处房产?这就是我的 build.gradle 中的内容:

tasks.withType(Test) {
systemProperties System.properties
maxParallelForks = 4
forkEvery = 1
}

最佳答案

类被分配给 fork 以便预先执行,而不是在轮询的基础上执行。因此,前两个分支将预先分配两个类,另外两个分别分配一个,无论这些类中的每一个需要多长时间才能完成。在最坏的情况下,两个运行时间最长的类将被分配给一个分支。这就是它的工作方式 - 类被分成组,然后使用要为每个类执行的类列表启动单独的测试 jvm(fork)。

附带说明 - 你不想做 forkEvery = 1 - 这将在每个测试类减慢您的测试执行速度后重新启动您的测试 jvm,但没有任何好处。

关于selenium - Geb、Spock、Gradle 和 maxParallelForks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54639237/

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