【发布时间】:2013-05-11 08:39:05
【问题描述】:
正如标题所说,考虑到您不想为每个特定测试启动/停止测试服务器,我对使用 Jetty Web 服务器测试应用程序的最佳方法感兴趣。
据我所知,解决方法如下:
-
如果您使用 Maven 或 Gradle 等构建工具,您可以在
*.pom或*.gradle文件中进行。- 这样做的缺点是您必须以与通常在应用程序中不同的方式创建测试服务器。
-
创建一个测试套件并使用
@BeforeClass和@AfterClass注释在测试Suite之前/之后启动/停止服务器。- 这里的缺点是指定要运行的测试的“丑陋”方式。您还必须指定添加到套件的测试,它不应该在套件之外运行(避免重复运行测试)。我认为 Junit 还没有完全做好这方面的准备。
-
在测试开始时以静态方式创建和启动服务器,并使用
ShutDown机制挂接到 JVM 并在所有测试完成后自动停止服务器。这似乎是最好的解决方案,因为这种机制已经在 Jetty 中可用,但是- 缺点是您无法控制服务器的停止。它实际上是在一个完全不同的线程中完成的,甚至在构建工具之外(我为此使用 Gradle)
【问题讨论】:
标签: java testing junit jetty gradle