首页 文章

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

提问于
浏览
2

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

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

1 回答

  • 0

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

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

    • 使用exec-maven-plugin和exec:exec插件,可以启动HSQLDB .

    • 可以使用sql-maven-plugin初始化数据库(模式和表创建,数据插入) .

    • 然后您可以使用Cargo在Jetty实例中启动WAR .

    • 使用maven-failsafe-plugin,您可以启动使用Selenium的JUnit测试 .

    当然,您还需要启动所有其他外部系统的模拟版本 .

相关问题