是否有嵌入式 zookeeper,以便我们可以在单元测试中使用它?它可以随测试一起发货,开箱即用。也许我们可以模拟一些服务并注册到嵌入式动物园管理员
4 回答
Curator框架具有 TestingServer 和TestingCluster类(请参阅https://github.com/Netflix/curator/wiki/Utilities ),它们位于单独的 Maven 工件(curator-test - 请参阅https://github的 Maven/Artifacts 部分.com/Netflix/curator/wiki)。
它们很容易解释,或者您可以下载 curator 代码库并查看它们如何在自己的测试用例中内部使用。
我们已经在 $DAY_JOB 的单元测试中成功地使用了这两种方法。
您可以使用Apache Curator Utilities提供的进程内 ZooKeeper 服务器TestingServer
,可用于测试。你maven
可以依赖如下
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>3.2.1</version>
</dependency>
您可以按如下方式在进程中创建 Zookeeper 服务器
TestingServer zkServer;
@Before
public void setUp() throws Exception
{
zkServer = new TestingServer(2181, true);
}
@After
public void tearDown() throws Exception
{
zkServer.stop();
}
用于测试集群使用 can use TestingCluster
,它创建了一个内部运行的 ZooKeeper 服务器集合
您可以使用zookeeper-maven-plugin,此处记录了该插件。
zookeeper 项目会生成一个“fat-jar”,用于系统测试。
有一个书面的README,显示它是多么容易启动,但不幸的是它不是作为工件制作的,因此无法链接到 maven。