Jyo*_*hi 1 testing unit-testing cassandra embedded-cassandra
我需要启动嵌入式 cassandra 实例以通过单元测试对 Cassandra 键空间执行一些操作。编程语言是Java。启动嵌入式 cassandra 有哪些选项?
我使用了 mojo maven 插件,但是在使用以下命令启动实例后,我没有看到 cassandra 实例在本地主机上的默认端口 9042 处启动。插件:http ://www.mojohaus.org/cassandra-maven-plugin/usage.html 启动命令:mvn cassandra:run -Dcassandra.nativeTransportPort=9042
在使用方面是否缺少某些东西或者我需要使用不同的东西?
谢谢乔蒂
这取决于您要测试的内容。Cassandra Maven Plugin(我是其原始作者之一)和 Cassandra Unit 都执行非常相似的操作,因为它们启动了 Cassandra 的 JVM 实例。
如果您只想在集成测试中执行一些 CRUD 操作,那么这非常有用,但如果您想测试一致性级别故障和面对各种故障情况下的重试等场景(特别是对于多个数据中心),这确实没有帮助。Cassandra 在这一点上只是一个野兽,所以这意味着您需要大量内存来运行测试。
要真正验证上述内容,我建议使用 Simulacron: https://github.com/datastax/simulacron/blob/master/doc/java_api/README.md
这是驾驶员团队用来测试行为场景的方法,尽管他们仍然依赖 CCM 测试桥(也是一个选项)来进行大量的拦截和处理工作。对于这两者,它在该项目中插入 Maven 的方式应该用作最佳实践的示例:
https://github.com/datastax/java-driver/blob/3.x/pom.xml#L749-L816
以及此类的配置文件切换: https: //github.com/datastax/java-driver/blob/3.x/pom.xml#L925-L947
为了真正理解它,我建议拉下驱动程序项目并将其拆开,看看它们是如何组合在一起的。也许最大的胜利是整个项目不依赖于 Cassandra 代码。
归档时间: |
|
查看次数: |
5318 次 |
最近记录: |