Gradle允许我启动多个jvms进行测试,如下所示:
test {
maxParallelForks = 10
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序的一些测试需要一个需要端口的假ftp服务器.使用一个jvm很容易做到这一点:
test {
systemProperty 'ftpPort', 10000
}
Run Code Online (Sandbox Code Playgroud)
但是,当并行运行时,我需要启动10个假的ftp服务器.如何为gradle生成的每个jvm添加自定义系统属性?
就像是:
test {
maxParallelForks 10
customizeForks { index ->
systemProperty 'ftpPort', 10000 + index
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
分叉之前和之后无需执行任何设置任务。但是,您可以覆盖项目中的测试任务来实现该行为(此处为 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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的 build.gradle 中:
task testFork(Type: ForkTest){
forkEvery = 1
maxParallelForks = 10
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |