我的应用程序的文件夹结构不像 WAR 文件。 web.xml 等配置文件位于配置文件夹中,消息包/资源文件位于资源文件夹中,资源文件存储为 UTF-8 等。Ant 构建用于生成结构正确的 WAR。
目前正在使用容器内测试框架(Cactus);然而,这个框架不再被维护。
有没有容器外测试框架可以引爆WAR,而不是要求源代码的文件夹结构与WAR的文件夹结构相匹配?如果框架支持将文件的实际位置映射到它们 future 的 WAR 位置,那也很好。
是否有仍在维护的容器内测试框架?
最佳答案
选项有限。还有一些其他框架可以做类似的事情。 MockRunner也已停产。 Spring Mock可能是一个选项,但它缺少一些功能(如果您需要 HTTP 请求转发,则必须扩展一些类)。
我在 Jetty 上取得了一些成功因为从测试用例中启动嵌入的 Jetty 很容易,但当然,这将真正启动您的应用程序,就好像它真的被部署了一样,这可能不是您想要的。
这就是为什么我通常尝试编写不包含对 Java EE 类型的任何依赖项的代码。这样,我就可以用我喜欢的任何方式测试所有内容。
然后 CI 服务器有一个单独的(缓慢的)测试,它偶尔运行一次部署整个应用程序(包括删除数据库并用干净的测试数据填充它)并执行一些简单的 UI 操作(登录,浏览一些页面)。
关于java - 针对 WAR 运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14341831/