gpt4 book ai didi

unit-testing - 为单元测试启动嵌入式 Cassandra 实例

转载 作者:行者123 更新时间:2023-11-28 20:19:59 25 4
gpt4 key购买 nike

我需要启动一个嵌入式 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

还有一个示例集成: https://github.com/datastax/java-driver/blob/9f0d89799a8a1e4cd1022dd7c43333924c36a648/integration-tests/src/test/java/com/datastax/oss/driver/api/core/ProtocolVersionMixedClusterIT.java

这就是驱动程序团队用来测试行为场景的方法,尽管他们仍然依赖 CCM 测试桥(也是一个选项)来处理很多 block 和解决问题。对于两者,在该项目中将其引入 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

并使用配置文件: https://github.com/datastax/java-driver/blob/3.x/driver-core/src/test/java/com/datastax/driver/core/PreparedStatementTest.java#L146

要真正了解它,我建议拉下驱动程序项目并将其拆开,看看它们是如何组合在一起的。最大的好处可能是整个项目对 Cassandra 代码没有任何依赖。

关于unit-testing - 为单元测试启动嵌入式 Cassandra 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44059872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com