我想为集成测试建立一个基础设施。目前我们使用 maven 引导 tomcat,然后执行 httpunit 测试。但是当前的解决方案几乎没有缺点。
- 如果测试,提交到数据库的任何更改最终都需要手动回滚
- 在集成测试中运行代码覆盖率并不简单(我们使用的是声纳)。
我的目标是:
- 允许在测试之间自动回滚(希望使用 String @transaction 和 @rollback)
- 简单直接的代码覆盖率
- 使用 @RunWith 将从 JUnit 引导系统,而不是从外部引导系统
- 与实时 servlet 和 javascript 交互(我考虑从 httpuinit 切换到 selenium……)
- 合理的执行时间(至少不长于现有的执行时间)
上面的目标在我看来是合理的,并且对于许多 Java/J2ee 项目来说都是通用的。我正在考虑通过使用 Arquillian 和 Arquillian Spring Framework Extension 组件来实现这些目标。另请参阅https://github.com/arquillian/arquillian-showcase/
- 有没有人使用 Arquillian 和Arquillian Spring Framework Extension并有经验?
- 你能分享问题的最佳实践和经验教训吗?
- 任何人都可以提出上述方法的替代方法吗?