Testing 使用Gradle进行集成测试时运行服务器

Testing 使用Gradle进行集成测试时运行服务器,testing,gradle,integration,kryonet,Testing,Gradle,Integration,Kryonet,我使用Kryonet和Gradle开发了一个客户机-服务器体系结构,大致如下 父项目X,包含项目A和B 项目A(服务器) 项目B(客户端),包含集成和单元测试类 现在,每当我在项目B(或项目X,如果更容易的话)上运行目标“integrationTest”时,我都希望服务器提前启动,这样集成测试就不会失败 这是到目前为止我在项目B的build.gradle中得到的结果-它不运行服务器,但是: task integrationTest(type: Test) { testClassesD

我使用Kryonet和Gradle开发了一个客户机-服务器体系结构,大致如下

  • 父项目X,包含项目A和B
  • 项目A(服务器)
  • 项目B(客户端),包含集成和单元测试类
现在,每当我在项目B(或项目X,如果更容易的话)上运行目标“integrationTest”时,我都希望服务器提前启动,这样集成测试就不会失败

这是到目前为止我在项目B的build.gradle中得到的结果-它不运行服务器,但是:

task integrationTest(type: Test) {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
    outputs.upToDateWhen { false }
}

我找到的最简洁的答案是使用ProcessBuilder在后台运行服务器,如对该问题的回答所述:

在您的情况下,我将在父项目X中创建一个任务,该任务启动一个单独的gradle构建(使用上述内容)来运行服务器,然后运行客户端