我使用Kryonet和Gradle开发了一个客户端 - 服务器架构,其结构大致如下
现在每当我运行目标' integrationTest'在项目B(或项目X,如果这更容易),我希望服务器提前开始,以便集成测试不会失败。
这是我迄今为止在项目B的build.gradle中所获得的 - 它不会运行服务器,但是:
task integrationTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
outputs.upToDateWhen { false }
}
答案 0 :(得分:0)
我发现最简洁的答案是使用ProcessBuilder在后台运行服务器,详情请参阅此问题的答案: How to execute a gradle external task (Exec) in background?
在你的情况下,我在父项目X中创建一个任务,启动一个单独的gradle构建(使用上面的代码)来运行服务器,然后运行客户端。