gpt4 book ai didi

testing - 如何在并行测试时为每个 jmv gradle spawn 设置不同的系统属性?

转载 作者:行者123 更新时间:2023-11-28 19:43:16 24 4
gpt4 key购买 nike

Gradle 允许我像这样启动多个 jvm 进行测试:

test {
maxParallelForks = 10
}

我的应用程序的一些测试需要一个需要端口的假 ftp 服务器。使用一个 jvm 很容易做到这一点:

test {
systemProperty 'ftpPort', 10000
}

但是,当并行运行时,我需要启动 10 个假的 ftp 服务器。如何为 gradle 生成的每个 jvm 添加自定义系统属性?

类似于:

test {
maxParallelForks 10
customizeForks { index ->
systemProperty 'ftpPort', 10000 + index
}
}

最佳答案

fork 前后无需设置任务。但是,您可以覆盖项目中的测试任务以实现行为(在 Java 中),因为测试任务只是一个类:

  public class ForkTest extends org.gradle.api.tasks.testing.Test {
private final AtomicInteger nextPort = new AtomicInteger(10000);
public Test copyTo(JavaForkOptions target) {
super.copyTo(target);
target.systemProperty("ftpPort", nextPort.getAndAIncrement());
return this;
}
}

然后在你的 build.gradle 中:

task testFork(Type: ForkTest){
forkEvery = 1
maxParallelForks = 10
...
}

关于testing - 如何在并行测试时为每个 jmv gradle spawn 设置不同的系统属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46972781/

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