Использование встроенного локатора gemfire и сервера для тестирования интеграции - PullRequest
0 голосов
/ 15 января 2019

У меня есть приложение, которое использует локатор gemfire и серверы. Я хотел бы написать интеграционный тест, который мог бы помочь мне запустить локатор и сервер в JVM, а также закрыть их при завершении тестов. Я не смог найти ни одной документации, которая могла бы помочь мне сделать это.

Я попытался запустить локатор и сервер, когда тесты начинают использовать LocatorLauncher и ServerLauncher. Он запускает локатор, но выдает исключение, заявляющее IllegalStateException: A connection to a distributed system already exists in this VM.

Я не очень хорошо разбираюсь в gemfire и не понимаю, что мне здесь не хватает, или я пытаюсь совершить совершенно неверное направление.

1 Ответ

0 голосов
/ 15 января 2019

Было бы полезно узнать немного больше о том, что именно вы пытаетесь проверить. У нас есть разные уровни тестирования в базе кода Geode. Если вы можете использовать только сервер, я бы предложил использовать ServerStarterRule в ваших JUnits. Вот пример этого: https://github.com/apache/geode/blob/f12055ae3ae4b1f4731c0447af0c4cb9abdd4159/geode-core/src/integrationTest/java/org/apache/geode/management/internal/cli/commands/AlterRegionCommandIntegrationTest.java

Это правило запускает сервер как часть JUnit JVM. Это означает, что вы не сможете одновременно использовать ClientCache (в одном экземпляре JVM не может быть экземпляров ClientCache и Cache).

Следующий уровень теста называется DUnit тестирование. Эта структура позволяет вам раскручивать несколько JVM и формировать фактический кластер. Лучший способ использовать это с ClusterStartupRule вместе с GfshCommandRule. Примером этого может быть: https://github.com/apache/geode/blob/10d89ede6f90f046c15e12e3d16aed259d7044b0/geode-cq/src/distributedTest/java/org/apache/geode/management/internal/cli/commands/ListClientCommandDUnitTest.java

Здесь запускаются различные компоненты, в том числе клиентская виртуальная машина. Хорошая вещь об использовании этих правил заключается в том, что они будут обрабатывать запуск и разборку для вас последовательным и безопасным способом.

...