我正在与Gradle并行运行UI测试:
build.gradle:
test {
maxParallelForks = 4
}我想把一些过程(1,2,3,4)传递给每一个分叉的过程?
目的是使这些测试使用不同的虚拟显示。这样,这些UI测试就不会彼此冲突。理想情况下,我希望将系统属性DISPLAY=:15:1,DISPLAY=:15:2,DISPLAY=:15:3,DISPLAY=:15:4传递给分叉进程。
发布于 2018-10-19 15:28:58
我不想成为一个死海报,但我也有同样的问题(如何利用分叉过程作为索引)并设法解决它,所以下面的解决方案可能会对某人有所帮助。
从类似问题的mrhaki's answer中,Gradle将向每个分叉JVM传播唯一的org.gradle.test.worker属性。不幸的是,这些工作属性不是从1开始的(因此不能直接用作索引值),但我发现它们是按顺序排列的。例如,对于maxParallelForks = 3,每个分叉过程可以有org.gradle.test.worker = 33、org.gradle.test.worker = 34和org.gradle.test.worker = 35。感谢这一点,我们可以从工人身上建立指数。
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 4https://stackoverflow.com/questions/28488365
复制相似问题