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 に答える