【问题标题】:Run tests against WAR针对 WAR 运行测试
【发布时间】:2013-01-15 16:08:28
【问题描述】:

我的应用程序的文件夹结构与 WAR 文件不同。 web.xml 等配置文件位于配置文件夹中,消息包/资源文件位于资源文件夹中,资源文件存储为 UTF-8 等。Ant 构建用于生成结构正确的 WAR。

目前正在使用容器内测试框架(Cactus);但是,此框架已不再维护。

是否存在可以爆炸 WAR 的容器外测试框架,而不是要求源代码的文件夹结构与 WAR 的文件夹结构相匹配?如果框架支持将文件的实际位置映射到它们未来的 WAR 位置,那也可以。

是否有仍在维护的容器内测试框架?

【问题讨论】:

  • Cactus 是否缺少您需要的功能?或者有一个错误阻止你使用它?如果没有,为什么担心它没有得到维护?如果您有投资,您是否考虑过自己接管维护工作?
  • 至于找到一个框架,它可以随意收集一些文件并让它看起来像一个战争......为什么有人会开发这样的东西?
  • @parsifal 当然,它目前正在运行。我担心它会随着技术的发展而停止运行,并且更愿意针对可能随着技术发展而不是不会的框架编写新的测试.
  • 好吧,如果你害怕使用遗留解决方案,我会先修复文件结构,添加 ant 脚本(或者可能会尝试迁移到 maven)然后检查有哪些选项。

标签: java unit-testing testing http-unit


【解决方案1】:

选项有限。还有一些其他框架可以做类似的事情。 MockRunner 也已停产。 Spring Mock 可能是一个选项,但它缺少一些功能(如果您需要 HTTP 请求转发,则必须扩展一些类)。

我在 Jetty 方面取得了一些成功,因为从测试用例中启动嵌入的 Jetty 很容易,但当然,这将真正启动您的应用程序,就好像它真的被部署了一样,这可能不是您想要的。

这就是为什么我通常会尝试编写不包含任何对 Java EE 类型的依赖的代码。这样,我就可以用我喜欢的任何方式测试所有内容。

CI 服务器然后有一个单一的(缓慢的)测试,它会不时运行一次,部署整个应用程序(包括擦除数据库并用干净的测试数据填充它)并执行一些简单的 UI 操作(登录、浏览一些页面)。

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    • 2011-10-27
    • 2019-06-29
    相关资源
    最近更新 更多