要启动服务,我知道一个使用新的MyService().run(args).如何阻止?
我需要在我的测试中以setUp()和tearDown()的方式开始和停止程序.
解决方法
您可以在新线程中启动服务,一旦测试结束,服务将自动关闭.
然而,从dropwizard 0.6.2开始,dropwizard-testing模块包含一个junit rule,完全适用于此用例(see here).
此规则的使用将如下所示:
Class MyTest { @ClassRule public static TestRule testRule = new DropwizardServiceRule<MyConfiguration>(MyService.class,Resources.getResource("service.yml").getPath())); @Test public void someTest(){ ....