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

使用maven、cargo、jetty和HSQL进行系统测试的方法,maven,selenium,jetty,war,cargo,Maven,Selenium,Jetty,War,Cargo,我一直在尝试在集成测试阶段运行一些Selenium系统测试用例。我想让货物把战争部署到当地的码头设施上。然后,我希望使用Spring配置文件的测试版本运行测试用例。目标是对web应用程序运行测试,模拟所有外部依赖项,并使用HSQL作为数据库 我认为这种方法是错误的:我认为在这个阶段创建的WAR文件是一个“生产战”,它不包括测试资源。这样做的最佳方式是什么?在POM中创建一个新的概要文件,在“测试”阶段构建战争的“测试版本”?有没有任何例子说明如何做到这一点?我应该采取不同的方法吗?我会采用不同的

我一直在尝试在集成测试阶段运行一些Selenium系统测试用例。我想让货物把战争部署到当地的码头设施上。然后,我希望使用Spring配置文件的测试版本运行测试用例。目标是对web应用程序运行测试,模拟所有外部依赖项,并使用HSQL作为数据库


我认为这种方法是错误的:我认为在这个阶段创建的WAR文件是一个“生产战”,它不包括测试资源。这样做的最佳方式是什么?在POM中创建一个新的概要文件,在“测试”阶段构建战争的“测试版本”?有没有任何例子说明如何做到这一点?我应该采取不同的方法吗?

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

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

  • 使用和exec:exec插件,可以启动HSQLDB
  • 可以使用初始化数据库(架构和表创建、数据插入)
  • 然后你可以用货物在码头上发动战争
  • 使用maven failsafe插件,您可以启动使用Selenium的JUnit测试
  • 当然,您还需要启动所有其他外部系统的模拟版本