【问题标题】:Cassandra Datastax C# Driver, all Unittest of the VS solution Cassandra.sln failedCassandra Datastax C# Driver,VS解决方案Cassandra.sln的所有Unittest都失败了
【发布时间】:2014-04-08 17:13:53
【问题描述】:

我拿了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的所有单元测试失败的原因。

谢谢

【问题讨论】:

    标签: ssh cassandra


    【解决方案1】:

    我最近不得不解决同样的问题。当时,绝对不可能在不涉及非 Windows (== Linux) 机器的情况下运行单元测试。这可能今天不再是这种情况了;请参阅最底部的注释。

    考虑到这一点,我必须这样做:

    1. 在同一个 LAN 上建立一台 Linux 主机(如果您还没有的话)

    2. 在 Linux 主机上安装名为 ccm 的软件

    3. 使用ifconfig 在 Linux 主机上创建多个 IP 别名,以便可以使用这些 IP 从外部访问主机。我相信我必须创建 6 个或更多别名来覆盖所有单元测试(一些单元测试在模拟集群时会同时使用那么多 Cassandra 实例)。

    4. 配置防火墙为所有这些别名启用端口 9160(在我的例子中,我在运行单元测试时完全禁用了防火墙)。别名必须遵循一定的模式才能使 UT 线束能够连接;见 6c)。

    5. 确保 sshd 已在 Linux 主机上安装、运行和访问。

    6. 回到 Windows,编辑 gotest.bat 并修改:

      a) 使您能够成功登录 Linux 主机的登录凭据

      b) -h 参数指向你的 Linux 主机 IP

      c) -i 参数以匹配您的 Linux 别名。设置别名时,请确保使用地址 a.b.c.x,其中 x 从 1 到您的最高别名。例如gotest.bat-i 192.168.13的默认值意味着测试框架期望主机别名为192.168.13.1、192.168.13.2、192.168.13.3等等。

    然后,如果我没记错的话,我可以运行单元测试。我部分地从记忆中写下这个答案,所以我可能错过了一些东西;如果遇到问题,请在下方添加评论。

    注意:几周前 ccm 添加了 Windows 支持。因此,您应该能够在 Windows 上运行集群。是否可以在 Windows 上完全运行单元测试是一个悬而未决的问题,因为 UT 工具使用 SSH 连接到集群并支持/拆除各种集群配置。此外,由于 Windows 支持如此新鲜,可能仍然存在与您可能遇到的与 C# 驱动程序无关的错误。

    【讨论】:

      【解决方案2】:

      谢谢丹尼尔

      由于我正在评估我的同事提出的 Db Cassandra 与其他选择(SQL 和 NoSQL Dbs),所以当我们比较它时,我必须将 Cassandra 的这个实际问题作为其评估结果表中的减分点之一与其他数据库:

      恕我直言,Cassandra 对于(Linuy 和 Java 人员)来说是一个很好的 NoSQL Db,并且有条件地适用于 Windows 和 C# 平台。

      是否有一些用于 Cassandra 的商业 C# 驱动程序可以提供运行良好的 Unittest?

      【讨论】:

        猜你喜欢
        • 2014-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-15
        • 2016-07-30
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        相关资源
        最近更新 更多