我已经采用了Cassandra Datastax C#Driver的分支1.0源代码并尝试研究代码。 VS解决方案cassandra.sln确实编译好,但所有3个Unittest项目都运行失败。 我发现unittest的方法使用2个IP地址,一个是localhost:9042,一个是:192.168.13.1:22。后者使用22作为SSH端口。 有谁能够帮我: 1.如何在Windows上配置Cassandra,端口22作为SSH端口,用户&密码?我没有得到任何关于此的文件。
我想这就是VS解决方案cassandra.sln的所有单元测试失败的原因。
感谢
答案 0 :(得分:1)
我最近不得不解决同样的问题。当时,在设置中没有涉及非Windows(== Linux)计算机的情况下运行单元测试绝对不可能。今天可能不再是这种情况;看到最底部的注释。
考虑到这一点,这就是我必须要做的事情:
如果您还没有Linux主机,请在同一局域网上站起来
在Linux主机上安装名为ccm的软件
使用ifconfig
在Linux主机上创建多个IP别名,以便可以使用这些IP从外部访问主机。我相信我必须创建6个或更多别名来覆盖所有单元测试(一些单元测试在模拟集群的同时使用了许多Cassandra实例)。
配置防火墙为所有这些别名启用端口9160(在我的情况下,我在运行单元测试时完全禁用了防火墙)。别名必须遵循某种模式才能使UT线束能够连接;见6c)。
确保在Linux主机上安装,运行和访问sshd。
返回Windows,编辑gotest.bat并修改:
a)登录凭据,使您能够成功登录Linux主机
b)-h
参数指向您的Linux主机IP
c)-i
参数以匹配您的Linux别名。设置别名时,请确保使用地址a.b.c.x
,其中x
从1变为最高别名。例如,-i 192.168.13
中的默认值gotest.bat
表示测试框架期望主机别名为192.168.13.1,192.168.13.2,192.168.13.3等。
之后,如果我没记错的话,我可以进行单元测试。我部分是从记忆中写出这个答案,所以我可能错过了一些东西;如果遇到麻烦,请在下方添加评论。
注意:几周前ccm
添加了Windows支持。因此,您应该能够在Windows上运行群集。您是否可以在Windows上完全运行单元测试是一个悬而未决的问题,因为UT线束使用SSH连接到群集并站起来/拆除各种群集配置。此外,由于Windows支持是如此新鲜,可能仍然存在与您可能遇到的C#驱动程序无关的错误。
答案 1 :(得分:0)
感谢Daniel
由于我正在评估Db Cassandra与我的同事提出的其他选择(SQL和NoSQL Dbs),所以当我们比较它时,我必须将Cassandra的实际问题作为其评估结果表中的一个Minus点重新认识与其他Db:
IMHO Cassandra是一个很好的NoSQL Db(Linuy& Java人),并且有条件地适用于Windows& C#平台。
Cassandra是否有一些商业C#驱动程序可以使Unittest运行正常?