Seb*_*ber 9 java jvm amqp rabbitmq mongodb
我知道RabbitMQ是用Erlang编写的,因此无法像在ActiveMQ JMS代理中那样嵌入到JVM中.
但实际上有些项目是用另一种语言完成的,可以很容易地嵌入到集成测试中.
例如,使用C++编写的MongoDB可以在JVM集成测试的上下文中轻松启动/停止:https: //github.com/flapdoodle-oss/embedmongo.flapdoodle.de
也有人把它移植到Java:https: //github.com/thiloplanz/jmockmongo/
所以我只是想知道当我的应用程序是用Java编写时,我们如何进行集成测试,而另一种技术是另一种技术(如Erlang for RabbitMQ)?
一般来说,什么是良好做法?
我看到3个主要解决方案:
是否有Maven/Sbt/Ant插件来启动临时RabbitMQ代理?在测试课之前支持Junit/TestNG RabbitMQ的任何项目?
我已经看到在Java中有一个AMQP的开源实现:Apache Qpid 有没有人使用这个实现进行集成测试的经验,而在生产中有RabbitMQ?它甚至可能吗?我正在使用Spring Integration.
顺便说一下,我刚刚注意到Spring-AMQP项目提到了它的github自述文件:
这里的许多"集成"测试需要运行RabbitMQ服务器 - 如果未检测到代理,它们将被跳过.
根据 Philip Christiano 的回答说使用 VM,现在我们有了 Docker,我认为这是在 Docker 容器中嵌入不同技术的方法。
人们可以启动一个包含 RabbitMQ 服务器的 docker 容器,并且它比使用 VM 更快,因为 docker 容器是轻量级的并且启动时间要短得多。
有一些 Maven 插件允许启动 docker 容器,例如: http: //www.alexecollins.com/content/docker-maven-plugin/
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |