卡桑德拉单位与斯卡拉。不是会话

时间:2017-04-07 12:13:17

标签: scala cassandra

我正试图用cassandraunit来测试Cassandra。我从github粘贴测试并转换为Scala,但它不起作用。

text = '[red]\naaa [bbb] hello\n[blue]\naaa\n[green]\nccc'

# keys = ('red', 'blue', 'green')
# keys = ('blue', 'red', 'green')
# keys = ('green', 'red', 'blue')
keys = ('green', 'blue', 'red')
# store key and index of key tuple
index_key_tuples = []

for key in keys:
    index = text.find('[' + key + ']')
    if index != -1:
        index_key_tuples.append((index, key))
# sort the index key tuple
index_key_tuples.sort()

i = 0
size = len(index_key_tuples)
while i < size - 1:
    # start index of content of key
    item = index_key_tuples[i]
    key = item[1]
    start_index = item[0] + len(key) + 2  # 2 is for square bracket
    # end index of content of key
    next_item = index_key_tuples[i + 1]
    end_index = next_item[0]
    # content of key
    key_content = text[start_index:end_index].strip()
    print(key, key_content)
    i += 1

# handle the last key
last_item = index_key_tuples[size-1]
key = last_item[1]
start_index = last_item[0] + len(key) + 2
key_content = text[start_index:].strip()
print(key, key_content)

会话变量为null我不知道为什么。我理解比cassandraCQLUnit在同一个VM中有一个Cassandra服务器。是否有必要做其他事情?

1 个答案:

答案 0 :(得分:2)

您需要启动服务器并进行连接。然后您可以在以下位置加载数据:

import com.datastax.driver.core.{Cluster, Session}
import org.cassandraunit.CQLDataLoader
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet
import org.cassandraunit.utils.EmbeddedCassandraServerHelper
import org.scalatest.{BeforeAndAfterAll, FunSuite}

class CassandraTest extends FunSuite
  with BeforeAndAfterAll {

  var cluster : Cluster = _
  var session : Session = _

  override def beforeAll(): Unit = {
    EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.CASSANDRA_RNDPORT_YML_FILE)
    cluster = EmbeddedCassandraServerHelper.getCluster()
    session = cluster.connect()

    val dataLoader = new CQLDataLoader(session)
    dataLoader.load(new ClassPathCQLDataSet("statementsWithBlankEndings.cql","mykeyspace"))
  }

  test("really simple transformation") {

    val resultSet = session.execute("select * from mykeyspace.testCQLTable  WHERE id='1690e8da-5bf8-49e8-9583-4dff8a570737'")
    println(resultSet.iterator().next().getString("value"))

  }

}