gpt4 book ai didi

gradle - 如何将参数传递给 Gradle 中的 fork 测试进程?

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

我正在与 Gradle 并行运行 UI 测试:

build.gradle:

test {
maxParallelForks = 4
}

我想将多个进程(1、2、3、4)传递给这些 fork 进程中的每一个?

目标是让这些测试使用不同的虚拟显示器。这样这些 UI 测试就不会相互冲突。理想情况下,我想传递系统属性 显示=:15:1 , 显示=:15:2 , 显示=:15:3 , 显示=:15:4 到 fork 的进程。

最佳答案

我讨厌成为一个 necroposter,但我有同样的问题(如何利用 fork 进程作为索引)并设法解决它,所以也许下面的解决方案会对某人有所帮助。

来自 mrhaki's answer在类似的问题上,Gradle 将传播唯一的 org.gradle.test.worker每个 fork 的 JVM 的属性。对我来说不幸的是,这些 worker 属性不是从 1 开始的(因此不能直接用作索引值),但我发现它们是按顺序出现的。例如。对于 maxParallelForks = 3可以有org.gradle.test.worker = 33 , org.gradle.test.worker = 34org.gradle.test.worker = 35每个 fork 的进程。多亏了这一点,我们可以从 worker 建立索引。

build.gradle:

test {
maxParallelForks = 4
systemProperty 'forks', maxParallelForks
}

Java 中的某处:
Integer maxForks = Integer.valueOf(System.getProperty("forks", "1"));
Integer worker = Integer.valueOf(System.getProperty("org.gradle.test.worker", "1"));
int index = (worker % maxForks) + 1; // index will be 1, or 2, or 3 or 4

关于gradle - 如何将参数传递给 Gradle 中的 fork 测试进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488365/

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