使用maven,cargo,jetty和HSQL进行系统测试的方法

时间:2013-04-04 11:58:37

标签: maven selenium jetty war cargo

我一直试图在集成测试阶段运行一些Selenium系统测试用例。我希望Cargo将WAR部署到本地Jetty安装。然后我希望我的测试用例运行,使用Spring配置文件的测试版本。目标是针对Web应用程序运行测试,模拟所有外部依赖项,并使用HSQL作为数据库。

我认为这种方法是错误的:我认为在此阶段创建的WAR文件是“生产WAR”,它不包括测试资源。这样做的最佳方式是什么?在POM中创建一个新的配置文件,在“测试”阶段构建WAR的“测试版本”?是否有任何示例显示如何执行此操作?我应该采取不同的方法吗?

1 个答案:

答案 0 :(得分:0)

我会使用不同的方法。使用“测试资源”进行测试的问题在于您没有测试实际应用程序。可能有很多“代码”在您的资源中很重要,特别是如果您使用的是Spring。 我将使用特殊配置测试“生产WAR”以进行测试。每个外部系统(数据库,外部Web服务等)都应该是可配置的(使用JNDI,外部配置文件等),而不是在WAR中硬编码。

以下maven配置应该可以完成工作:

  1. 使用exec-maven-plugin和exec:exec插件,可以启动HSQLDB。
  2. 可以使用sql-maven-plugin初始化数据库(架构和表创建,数据插入)。
  3. 然后您可以使用Cargo在Jetty实例中启动WAR。
  4. 使用maven-failsafe-plugin,您可以启动使用Selenium的JUnit测试。
  5. 当然,您还需要启动所有其他外部系统的模拟版本。