【发布时间】:2014-06-23 23:58:46
【问题描述】:
您是应该针对 QA 服务器运行自动化集成测试,还是应该从测试中以某种方式启动应用程序服务器?有人做选项#2吗?您应该如何从测试中启动应用程序服务器?
我只是陷入了不知道将硒驱动程序指向哪里的困境。这是一个 Spring Java 应用程序。
【问题讨论】:
您是应该针对 QA 服务器运行自动化集成测试,还是应该从测试中以某种方式启动应用程序服务器?有人做选项#2吗?您应该如何从测试中启动应用程序服务器?
我只是陷入了不知道将硒驱动程序指向哪里的困境。这是一个 Spring Java 应用程序。
【问题讨论】:
您是否应该针对 QA 运行自动化集成测试 服务器或者你应该以某种方式启动应用程序服务器 你的测试?
作为一个实用的概念,至少在我看来,您的测试环境越像您的生产环境越好。这意味着甚至必须考虑硬件、位置、操作系统等。
这一切都取决于项目愿意在产品质量上投入多少“努力”。
您应该根据您的产品和项目上下文运行自动化集成测试。您的问题没有一个单一且最终的答案,因为需要考虑很多变量。
有人会选择#2吗?
是的,我确实使用了嵌入式应用程序服务器,但我只将它用于数据库集成,但您也可以将其应用于功能自动化测试。
您应该如何从测试中启动应用程序服务器?
一种选择是使用可以通过 Maven 配置文件管理的嵌入式容器。我建议您按照此Arquillian Getting Started 指南了解它的工作原理,然后您可以将相同的概念应用于 Selenium 和 Spring。
【讨论】:
我通常选择选项 2——我使用 Maven Jetty 插件来启动运行 webapp 的应用程序服务器(通常在“测试”配置文件下交换某些依赖项,如数据库),然后针对本地托管运行 Selenium应用。您可以将 Jetty 插件绑定到 pre-integration-tests,并在 post-integration-tests 中停止。
我通常还包括 JaCoCo 插件来检测 Jetty JVM,以便我可以检查 Selenium 风格的集成测试的覆盖率。
【讨论】: