0

在我的 Java-Mavan-Spring 项目中,我使用cassandra 单元来尝试测试我的 DAO。

我在类路径中创建了 2 个文件:

  1. 描述我的初始数据的简单 XML
  2. 一个 cassandra 配置文件 (cassandra.yaml)

这是我的测试课:

public class UserProfilingCassandraDaoUTest extends BaseJunitTestCase {

    @Rule
    public CassandraUnit cassandraUnit = new CassandraUnit(new ClassPathXmlDataSet("cassandraTestValues.xml"), "cassandra.yaml", "127.0.0.1");

    private HectorCassandraConnection connection;

    @Before
    public void init() throws Exception {
    connection = Mockito.mock(HectorCassandraConnection.class);
    Mockito.when(connection.getKeyspace()).thenReturn(cassandraUnit.keyspace);
    }

    @Test
    public void shouldHaveLoadTestDataSet() throws Exception {
    Assert.assertNotNull(cassandraUnit.keyspace);
    Assert.assertEquals(cassandraUnit.keyspace.getKeyspaceName(), "rtb");
    }

    @Test
    public void getUserStatsTest() {
      // Some Test
    }
}

这是我的 cassandraTestValues.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<keyspace xmlns="http://xml.dataset.cassandraunit.org">
    <name>rtb</name>
    <columnFamilies>
        <columnFamily>
            <name>my_column_family</name>
            <keyType>UTF8Type</keyType>
            <comparatorType>UTF8Type</comparatorType>
            <defaultColumnValueType>UTF8Type</defaultColumnValueType>
            <row>
                <key>12345__678_910</key>
                <column>
                    <name>Col1</name>
                    <value>6</value>
                </column>
                <column>
                    <name>Col2</name>
                    <value>6</value>
                </column>
                <column>
                    <name>Col3</name>
                    <value>3</value>
                </column>
            </row>
        </columnFamily>
    </columnFamilies>
</keyspace>

当我运行我的测试时,我得到了这个错误的日志

我已经尝试了几个小时许多不同的方法来克服这个问题,但都没有成功。有任何想法吗?

4

1 回答 1

1

这有点令人难过,但是将 cassandra-unit 版本从 1.2.0.1 更改为 1.0.3.1,它就像一个魅力。通过将此项目导入我的工作区,我得到了解决方案。导入的项目工作得很好,在对两者进行比较后发现版本之间的差异是导致问题的原因。

此外,后来的 maven 版本都没有工作,这意味着在 1.0.3.1 之后出现的所有版本都失败了(1.2.0.1、1.1.2.1、1.1.1.3、1.1.1.2、1.1.1.1、1.1.0.1)。

我希望这可以为将来的某个人节省一些时间。这确实花了我一段时间。

于 2013-08-06T14:34:23.737 回答