Gradle jettyRun:这件事怎么样?

时间:2011-10-23 05:26:40

标签: testing selenium jetty gradle

通常,我会通过构建Server实例,设置连接器,处理程序和LifeCycleListener来启动Jetty,然后在Server实例上调用start()。我不知道如何使用Gradle中的jettyRun任务来实现这一点。文档让我感到困惑,除了gradle jettyRun的页面之外,我还没有找到这个任务如何工作的例子。

这项任务对我很有吸引力,因为它据称在执行后立即返回。这有助于在我的webkins从Jenkins运行后运行Selenium测试。我尝试通过JavaExec任务执行此操作,但这不起作用,因为JavaExec任务在基础JVM终止之前不会终止。

2 个答案:

答案 0 :(得分:4)

听起来您想要启动Jetty进行容器内集成测试。除了查看源代码外,这两篇文章还可以帮助您入门:

您正在寻找的关键功能,在后台启动Jetty,是jettyRun.daemon = true

答案 1 :(得分:2)

我在build.gradle中用于集成测试的内容如下所示。我认为这段代码简单直观。

test {
    exclude '**/*IntegrationTest*'
}

task integrationTest(type: Test) {
    include '**/*IntegrationTest*'
    doFirst {
        jettyRun.httpPort = 8080    // Port for test
        jettyRun.daemon = true
        jettyRun.execute()
    }
    doLast {
        jettyStop.stopPort = 8091   // Port for stop signal
        jettyStop.stopKey = 'stopKey'
        jettyStop.execute()
    }
}