DropWizard测试

时间:2013-07-09 16:39:15

标签: testing yaml dropwizard

因为我正在使用eclipse并且只是设置了一个dropwizard服务器。在命令提示符下,我输入了java -jar target / hello-world-0.0.1-SNAPSHOT.jar服务器hello-world.yml并且正在运行。然而,当我对我的eclipse文件进行更改时,例如更改yml文件,例如它不会更新。我必须crtl + c并重新运行我在上面输入的内容。我的问题是,是否有更快的测试方式,以便每次更改内容时更新,或者我只需要处理测试。感谢。

1 个答案:

答案 0 :(得分:4)

在IDE中运行

不同的Java IDE允许更高效的工作流程。例如,在IDE中,您可以使用运行时配置来运行应用程序,该运行时配置执行参数为Service.main()的{​​{1}}方法。这将为您节省无尽的Maven构建。

不幸的是,使用Eclipse时,代码更改的热插拔通常很麻烦,因此我建议您consider Intellij在热交换代码方面更可靠。即使这样,热插拔也可能存在风险。

有时重启是不可避免的

话虽如此,在您的情况下,热插拔无济于事。您正在更改仅在启动时读取的启动配置文件。除非您创建自己的动态刷新文件哈希更改机制(不建议),否则必须重新启动以查看更改。

另一种方法是将大部分配置测试放在单元测试中,并验证代码是否按预期响应。

静态资产提供最佳工作流程(无重启)

您可能会遇到只想更改静态资产(如JavaScript文件)的情况,在这种情况下,Intellij将允许您即时重新编译并将已更改的资产复制到server hello-world.yml目录中并具有他们立刻被Dropwizard拿起而没有重启。

如果您想更进一步,可以登记Grunt.js的服务,以便持续监控/target(或类似)的更改,然后自动为您更新src/main/resources/assets。同样,Intellij将自动保存焦点更改,这样可以实现最佳工作流程,您可以在其中更改资产,等待一秒钟,刷新浏览器并查看即时结果。

如果您想了解有关此方法的更多详细信息(以及一般的单页Web应用程序开发),我前面写了一篇很长的博客文章,内容涵盖Dropwizard and Ember Data