首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动物园管理员单元测试:quorumPeer从未被设定

动物园管理员单元测试:quorumPeer从未被设定
EN

Stack Overflow用户
提问于 2019-12-31 03:54:30
回答 1查看 326关注 0票数 1

我想写动物园管理员单元测试,使用嵌入式动物园管理员-测试。当我的动物园管理员版本小于3.4.0,比如3.3.0时,就没有问题了。但是当我使用下面的配置时,会出现问题。我已经寻找了很多方法来解决问题,但问题仍然存在。

maven pom依赖项:

代码语言:javascript
复制
<!--zookeeper-->
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>4.0.1</version>
        <exclusions>
            <exclusion>
                <artifactId>curator-client</artifactId>
                <groupId>org.apache.curator</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-client</artifactId>
        <version>4.0.1</version>
        <exclusions>
            <exclusion>
                <artifactId>zookeeper</artifactId>
                <groupId>org.apache.zookeeper</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-test</artifactId>
        <version>4.2.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

我的单元测试代码:

代码语言:javascript
复制
public static void main(String[] args) throws Exception {
    TestingCluster cluster = new TestingCluster(3);
    cluster.start();
    Thread.sleep(2000);

    TestingZooKeeperServer leader = null;
    for(TestingZooKeeperServer zs : cluster.getServers()){
        System.out.print(zs.getInstanceSpec().getServerId()+"-");
        System.out.print(zs.getQuorumPeer().getServerState()+"-");
        System.out.println(zs.getInstanceSpec().getDataDirectory().getAbsolutePath());
        if( zs.getQuorumPeer().getServerState().equals( "leading" )){
            leader = zs;
        }
    }
    leader.kill();
    System.out.println( "--After leader kill:" );
    for(TestingZooKeeperServer zs : cluster.getServers()){
        System.out.print(zs.getInstanceSpec().getServerId()+"-");
        System.out.print(zs.getQuorumPeer().getServerState()+"-");
        System.out.println(zs.getInstanceSpec().getDataDirectory().getAbsolutePath());
    }
    cluster.stop();
}

错误和异常:

代码语言:javascript
复制
Exception in thread "Thread-0" java.lang.NoSuchFieldError: configFileStr
at org.apache.curator.test.QuorumConfigBuilder$1.<init>(QuorumConfigBuilder.java:142)
at org.apache.curator.test.QuorumConfigBuilder.buildConfig(QuorumConfigBuilder.java:137)
at org.apache.curator.test.TestingZooKeeperServer$1.run(TestingZooKeeperServer.java:157)
at java.lang.Thread.run(Thread.java:748)
Exception in thread "main" java.lang.Exception: quorumPeer never got set
    at org.apache.curator.test.TestingQuorumPeerMain.blockUntilStarted(TestingQuorumPeerMain.java:90)
    at org.apache.curator.test.TestingZooKeeperServer.start(TestingZooKeeperServer.java:167)
    at org.apache.curator.test.TestingCluster.start(TestingCluster.java:149)

我试过了:消除额外的动物园管理员依赖性 版本控制但是这个问题还没有解决,我希望师父能帮我指出!

EN

回答 1

Stack Overflow用户

发布于 2019-12-31 08:45:10

https://github.com/apache/curator/blob/master/curator-test-zk34/README.md天哪,我太蠢了,没想到会发生这种事

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

https://stackoverflow.com/questions/59539375

复制
相关文章

相似问题

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