使用Maven进行集成测试的最佳实践?
- 论坛
- 使用Maven进行集成测试的最佳实践?
14 浏览
使用Maven进行集成测试的最佳实践?
我有一个项目正在使用Maven构建,其中使用Hibernate(和Spring)从数据库中检索数据等。我项目中的DAO的“测试”扩展了Spring的AbstractTransactionalDataSourceSpringContextTests
,以便将DataSource连接到我的测试类中,以便能够实际运行查询/ Hibernate逻辑来获取数据等。在其他几个项目中,我与HSQL数据库(内存中或指向文件)一起使用这些类型的测试,以便能够高效地测试实际的数据库查询逻辑,而不依赖于外部数据库。这个方法很好,因为它避免了任何外部依赖,并且在运行测试之前的数据库“状态”(每个测试都包装在回滚的事务中)是明确定义的。
不过,我对使用Maven来组织这些测试的最佳方法很好奇。把这些测试放在src/test/java
中感觉有点不太好,但从我所读的资料来看,没有一致的策略或做法来组织Maven中的集成测试。
从我到目前为止读到的资料来看,似乎可以使用Failsafe插件(或Surefire的第二个实例),并将其绑定到integration-test
阶段,还可以将自定义的启动/关闭逻辑(例如启动/停止HSQL实例)绑定到pre-integration-test
或post-integration-test
。但是,这真的是最好的方法吗?
所以我的问题基本上是 - 在使用Maven进行组织时,什么是一般公认的最佳实践?我很难在文档中找到任何一致的答案。
我想要的是:
- 将单元测试与集成测试分开,只有在
test
阶段运行单元测试 - 能够将自定义的启动/关闭逻辑绑定到
pre-integration-test
和post-integration-test
- 将集成测试的报告与单元测试Surefire报告合并/展示