Gradle允许我启动多个jvms进行测试,如下所示:
test {
maxParallelForks = 10
}
我的应用程序的一些测试需要一个需要端口的假ftp服务器。使用一个jvm很容易做到这一点:
test {
systemProperty 'ftpPort', 10000
}
然而,当并行运行时,我需要启动10个假的ftp服务器。如何为gradle生成的每个jvm添加自定义系统属性?
类似的东西:
test {
maxParallelForks 10
customizeForks { index ->
systemProperty 'ftpPort', 10000 + index
}
}
答案 0 :(得分:1)
在分叉之前和之后没有设置任务。但是,您可以在项目中覆盖测试任务以实现该行为(此处为Java),因为Test任务只是一个类:
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
...
}