通常,我会通过构建Server实例,设置连接器,处理程序和LifeCycleListener
来启动Jetty,然后在Server实例上调用start()
。我不知道如何使用Gradle中的jettyRun
任务来实现这一点。文档让我感到困惑,除了gradle jettyRun
的页面之外,我还没有找到这个任务如何工作的例子。
这项任务对我很有吸引力,因为它据称在执行后立即返回。这有助于在我的webkins从Jenkins运行后运行Selenium测试。我尝试通过JavaExec
任务执行此操作,但这不起作用,因为JavaExec
任务在基础JVM终止之前不会终止。
答案 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()
}
}