Подключитесь к встроенному Neo4j во время тестовой отладки

Я использую встроенный Neo4j для тестов JUnit со следующей конфигурацией правил:

@Rule
public Neo4jRule neo4jRule = new Neo4jRule()
        .withConfig("dbms.connector.1.enabled", "true")
        .withConfig("dbms.connector.1.listen_address", "localhost:4710")
        .withConfig("dbms.connector.1.type", "HTTP")
        .withConfig("dbms.connector.bolt.enabled", "true")
        .withConfig("dbms.connector.bolt.listen_address", ":4711")
        .withConfig("apoc.autoIndex.enabled", "true")
        .withConfig("ShellSettings.remote_shell_enabled", "true")
        .withConfig("ShellSettings.remote_shell_port", "5555")
        .withProcedure(apoc.index.FulltextIndex.class)
        .withProcedure(apoc.index.FreeTextSearch.class)
        .withProcedure(apoc.cypher.Cypher.class);

Теперь я хотел бы подключиться через cypher-shell во время отладки (установить точку останова), чтобы посмотреть, что на самом деле находится в тестовой базе данных в какой-то момент. К сожалению, ни cypher-shell -a localhost:4711 ни neo4j-shell -port 5555 получить связь. Первый не возвращается (остается в ожидании), второй возвращается Connection refused, Что мне не хватает? Любая идея о том, как получить соединение?

0 ответов

При достижении точки останова во время отладки встроенный сервер также перестает отвечать.

Если вы хотите посмотреть состояние своей БД во время модульных тестов, вам нужно приостановить выполнение без точки останова. Мое решение не совсем то, что вам нужно, но вы можете попробовать это

@Test
public void yourTest() throws IOException {
    try {
       System.out.pritnln(neo4j.httpURI());
       Thread.sleep(100000L);
    } catch (Exception e) {
       e.printStackTrace();
    }
}

Приведенный выше код будет приостановлен на 100 секунд, вы можете щелкнуть ссылку в консоли, чтобы открыть браузер Neo4j и запросить БД.

Другие вопросы по тегам