4

我已经使用 Kryonet 和 Gradle 开发了一个客户端-服务器架构,其结构大致如下

  • 父项目 X,包含项目 A 和 B
  • 项目 A(服务器)
  • 项目 B(客户端),包含集成和单元测试类

现在,每当我在项目 B(或项目 X,如果这更容易的话)上运行目标“集成测试”时,我希望服务器提前启动,这样集成测试就不会失败。

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

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

1 回答 1

0

我找到的最简洁的答案是使用 ProcessBuilder 在后台运行服务器,如对这个问题的回答中所述: 如何在后台执行 gradle external task (Exec)?

在你的情况下,我会在父项目 X 中创建一个任务,它启动一个单独的 gradle 构建(使用上面的)来运行服务器,然后运行客户端。

于 2018-03-08T17:59:08.707 回答