Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringREST集成测试中使用开发人员HSQLDB_Java_Integration Testing_Hsqldb_Maven Cargo - Fatal编程技术网

Java 在SpringREST集成测试中使用开发人员HSQLDB

Java 在SpringREST集成测试中使用开发人员HSQLDB,java,integration-testing,hsqldb,maven-cargo,Java,Integration Testing,Hsqldb,Maven Cargo,我想对Spring MVC Rest服务进行集成测试。本测试的目的主要是测试其余部分,而不是整个应用程序。这意味着我想使用HSQLDB而不是PostgreSQL的主数据库。 同时,我希望在Tomcat上部署Rest服务,使其更接近我们的实际目标 最后,我发现这个博客及其示例应用程序非常接近我的需要: 它使用cargo maven插件启动tomcat并启动集成测试 我唯一的问题是:我如何像使用简单的单元测试一样使用特殊的ApplicationContext进行测试 如果我理解正确,集成测试使用与实

我想对Spring MVC Rest服务进行集成测试。本测试的目的主要是测试其余部分,而不是整个应用程序。这意味着我想使用HSQLDB而不是PostgreSQL的主数据库。 同时,我希望在Tomcat上部署Rest服务,使其更接近我们的实际目标

最后,我发现这个博客及其示例应用程序非常接近我的需要: 它使用cargo maven插件启动tomcat并启动集成测试

我唯一的问题是:我如何像使用简单的单元测试一样使用特殊的ApplicationContext进行测试

如果我理解正确,集成测试使用与实际应用程序相同的war文件。这意味着war使用production web.xml调用production ApplicationContext.xml,后者使用真实数据库(我们对某些参数使用属性占位符,但对Hibernate的方言不使用)

所以我的问题是:有没有一种方法可以使用test web.xml或至少是test ApplicationContext.xml进行集成测试


谢谢。

如果您真的想在测试和生产中使用相同的WAR: 根据您的Spring版本:

  • 对于Spring>3.1:您可以使用配置文件,请参见此处的示例:

  • 对于较旧的Spring版本,请使用Apache Cocoon项目中的Spring配置程序:

  • 如果只是数据源,那么第三种可能性是您可以在Tomcat中配置数据源,并通过JNDI引用它