我想讨论当我们的产品部分不能嵌入JVM但必须在集成测试期间参与的场景。
场景:我正在使用Maven。我的应用使用以下工具
A)主动MQ
B)Cassandra DB
C)CXF WebService。
集成测试的解决方案1:我很幸运,所有A B和C都可以嵌入。所以我可以在我的JVM中模拟A B C并使用它。这显然有效,但这不是我想讨论的内容。
解决方案2:使用与集成测试相关的Maven阶段来设置整个环境。所以步骤:
1a)将A,B,C二进制包装到模块中,以便它可以在预集成测试阶段(类似于自制货物)拆开包装并准备这些产品或
1b)在预集成测试阶段从web和unpack等下载这些二进制文件(再次模拟货物项目)
2)在集成后测试中关闭所有内容。
如何使用Maven执行解决方案2?是否有任何插件可以帮助下载,解压缩(并记住不能在同一台机器上再次下载?)。如何启动和关闭ABC提供他们的位置已知?哪个Maven插件?我应该只使用antrun插件并创建脚本,从命令行启动ABC,然后以某种方式将它们拆除(我不知道如何通过杀死进程来做到这一点)?
答案 0 :(得分:1)
货运团队提供了一些您可能会觉得有帮助的maven archetypes。特别注意Separate Functional Test Module Archetype
,其中包括一个专门用于集成(功能)测试的模块,它完全符合您的描述:
pre-integration-tests
阶段希望这有帮助。