我非常喜欢使用 jetty 的嵌入式实例来测试 servlet,使用 junit 之类的东西来引导它。
http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded/MinimalServlets.java
这是如何做到这一点的最小示例。
这也是我们测试绝大多数码头本身的方式,启动并运行它。
对于特定的 servlet 或处理程序,我们经常在 jetty-test-helper 工件中使用 jetty-client 或 SimpleRequest。 URLConnection 也可以工作。
http://git.eclipse.org/c/jetty/org.eclipse.jetty.toolchain.git/tree/jetty-test-helper/src/main/java/org/eclipse/jetty/toolchain/test/SimpleRequest。爪哇 http://git.eclipse.org/c/jetty/org.eclipse.jetty.toolchain.git/tree/jetty-test-helper/src/main/java/org/eclipse/jetty/toolchain/test/SimpleRequest.java
这是在jetty-client中的测试,它是针对jetty-9的,所以如果你想要7或8,然后查看相应的标签,它在jetty-9中被重构了很多。
http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTest.java http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientTest.java
注意:我建议您传递 0 作为 jetty 启动的端口,这将为您提供一个随机开放端口,然后您可以将其拉出 jetty 进行测试,这可以避免在 CI 或并行上运行多个构建的情况在可能存在端口冲突的地方构建。