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

时间:2016-02-29 13:27:02

标签: testing gradle integration kryonet

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

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

现在每当我运行目标' integrationTest'在项目B(或项目X,如果这更容易),我希望服务器提前开始,以便集成测试不会失败。

这是我迄今为止在项目B的build.gradle中所获得的 - 它不会运行服务器,但是:

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

1 个答案:

答案 0 :(得分:0)

我发现最简洁的答案是使用ProcessBuilder在后台运行服务器,详情请参阅此问题的答案: How to execute a gradle external task (Exec) in background?

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