首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.AssertionError: Cassandra守护进程没有在超时期间启动

java.lang.AssertionError: Cassandra守护进程没有在超时期间启动
EN

Stack Overflow用户
提问于 2016-06-06 07:29:36
回答 2查看 3K关注 0票数 3

我的考试班:

代码语言:javascript
复制
public class NetworkSettingsDaoTest {

@Rule
public CassandraCQLUnit cassandraCQLUnit = new CassandraCQLUnit(new ClassPathCQLDataSet("simpleWithCreateKeyspace.cql"));
public static Session session;
public static NetworkSettingsDao networkSettingsDao;
@Before
public void init() throws ConfigurationException, TTransportException, IOException, InterruptedException{
    EmbeddedCassandraServerHelper.startEmbeddedCassandra(5600000L);
    //Thread.sleep(4*1000); //workaround for weak machine
    session = cassandraCQLUnit.getSession();
    networkSettingsDao = new NetworkSettingsDao();
}

@Test
public void should_have_started_and_execute_cql_script() throws Exception {
    ResultSet result = session.execute("select * from mytable WHERE id='myKey01'");
    assertThat(result.iterator().next().getString("value"), is("myValue01"));
}   
}

我的simpleWithCreateKeyspace.cql文件:

代码语言:javascript
复制
CREATE KEYSPACE NETWORKSETTINGS WITH replication={'class' : 'SimpleStrategy', 'replication_factor':1};
USE NETWORKSETTINGS;

CREATE TABLE STBDevice(
    KEY varchar,
    SETTINGS_COLUMN varchar,
    AMSIP varchar,
    PRIMARY KEY(KEY));

INSERT INTO STBDevice(KEY, SETTINGS_COLUMN,AMSIP) values('myKey01','myColumn1','myAMSIP1');

例外情况:

卡桑德拉守护进程没有在org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:130),org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:85),org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:64),org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:56),org.cassandraunit.BaseCassandraUnit.before(BaseCassandraUnit.java:28),org.junit.rules的超时时间内启动.ExternalResource$1.evaluate(ExternalResource.java:46) at org.junit.rules.RunRules.evaluate(RunRules.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.jun.runners.ParentRunner$1(ParentRunner.java:63)在org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdtinternal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-23 06:16:48

这个班帮助解决问题。

代码语言:javascript
复制
package org.cassandraunit.test.spring.cql;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Session;
import org.cassandraunit.spring.CassandraDataSet;
import org.cassandraunit.spring.CassandraUnitTestExecutionListener;
import org.cassandraunit.spring.EmbeddedCassandra;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;


@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({ CassandraUnitTestExecutionListener.class })
@CassandraDataSet(value = { "simple.cql" })
@EmbeddedCassandra
public class SpringCQLScriptLoadTest {

@Test
public void should_have_started_and_execute_cql_script() throws Exception {
    Cluster cluster = Cluster.builder()
            .addContactPoints("127.0.0.1")
            .withPort(9142)
            .build();
    Session session = cluster.connect("cassandra_unit_keyspace");

    ResultSet result = session.execute("select * from mytable WHERE id='myKey01'");
    assertThat(result.iterator().next().getString("value"), is("myValue01"));
}
  }
票数 -2
EN

Stack Overflow用户

发布于 2018-03-20 09:12:14

看起来,这取决于你向Cassandra发出的查询次数。如果您有太多的查询无法运行,那么您需要增加EmbeddedCassandra注释中的超时。@EmbeddedCassandra(timeout = 100000L)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37651794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档