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

4
我使用Kryonet和Gradle开发了一个客户端-服务器架构,大致结构如下:
  • 父项目X,包含项目A和B
  • 项目A(服务器)
  • 项目B(客户端),包括集成和单元测试类
现在,每当我在项目B上运行“integrationTest”目标时(如果这更容易,也可以在项目X上运行),我希望服务器预先启动,以便集成测试不会失败。
这是我在项目B的build.gradle中所做的,尽管它没有运行服务器:
task integrationTest(type: Test) {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
    outputs.upToDateWhen { false }
}
1个回答

0
我找到的最简洁的答案是使用ProcessBuilder在后台运行服务器,详见以下问题的答案: 如何在后台执行gradle外部任务(Exec)? 在您的情况下,我会在父项目X中创建一个任务,启动一个单独的gradle构建(使用上述方法)来运行服务器,然后运行客户端。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接