Apache Ignite:启动Ignite服务器进行单元测试的最佳实践

时间:2020-05-13 06:09:27

标签: unit-testing junit ignite

我有一个使用JUnit4的maven / Java 8项目。被测试的代码使用Java瘦客户端创建和操作Cache。为了从命令行(mvn测试)或像Eclipse这样的IDE运行单元测试,我希望能够以编程方式启动Ignite服务器。

如果我像这样启动服务器:

        Runnable runnable = () -> { 
            Ignite ignite = Ignition.getOrStart(cfg);
        };
        Thread t = new Thread(runnable);
        t.start();

在@BeforeClass中(使用Runnable避免阻塞getOrStart()),服务器会在几秒钟后正常死机。

[15:34:16] Ignite node started OK (id=33cb95c5)
[15:34:22] Ignite node stopped OK [uptime=00:00:05.378]

我的单元测试无法运行太快了。那么,是否有从Ignite的特殊开始对单元代码进行单元测试的最佳实践?似乎不是一个不常见的问题,但我还没有找到一个很好的答案(“使用此框架”,“扩展此类”等)。

谢谢!

1 个答案:

答案 0 :(得分:1)

为什么不只是使用

// Non-blocking
Ignite ignite = Ignition.getOrStart(cfg);

... go on with your test cases?

稍后您可以使用Ignition.stopAll()停止它。