2016-02-03 2 views
2

Я пытаюсь получить доступ к H2-Console во время WebIntegrationTest в режиме отладки. Тем не менее, я заметил, что Spring Boot блокирует H2-консоль, когда я отлаживаю тест. Кажется, как только достигается точка останова, также заблокирована консоль H2. Я работаю с Spring Boot 1.3.1.RELEASE.Spring Boot блокирует H2-консоль в режиме отладки

Каждая точка останова в следующем тесте вызывает блокировку H2-консоли. В точке останова 1 появляется страница входа в систему. Затем я нажимаю кнопку входа в систему, но ничего не происходит до тех пор, пока я не продолжу проверку следующей точки останова. В точке останова 2 я вошел в систему и могу выполнить запрос. Но только когда я перехожу к следующей точке останова, появляются результаты запроса.

@Test 
public void whenGetById_thenCorrectId() throws InterruptedException { 
    // do some stuff 
    // breakpoint 1 
    Thread.sleep(1000); 
    // breakpoint 2 
    Thread.sleep(1000); 
    // breakpoint 3 
} 

WebIntegrationTest ист сконфигурирован следующим образом:

@ActiveProfiles("local,unittest") 
@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = MyApplication.class) 
@WebIntegrationTest({"spring.h2.console.enabled=true", "server.port=8080"}) 
public class MyResourceTest { 

Как можно отделить DB Н2-в-памяти из режима отладки?

+0

Ну, что вы, по сути сделать с точки останова, чтобы остановить приложение, пока вы не будете продолжать бег вручную. Таким образом, нет возможности обойти это, если не использовать точки останова. Вы можете использовать один из других методов хранения для H2 (например, используя файловый или серверный режим), а затем подключить к нему отдельный экземпляр веб-консоли. – dunni

+1

Похоже, у вас есть точка останова, настроенная на приостановку всего JVM, а не только на один поток. –

+0

@ René Winkler Посмотрите этот ответ: http://stackoverflow.com/questions/12390116/access-to-h2-web-console-while-running-junit-test-in-a-spring-application –

ответ

5

Точка останова может быть настроена на приостановку всей виртуальной машины или только одного потока. В IntelliJ вы можете установить это, щелкнув правой кнопкой мыши соответствующую точку останова. Мои контрольные точки были настроены на приостановку работы всей виртуальной машины, и поэтому каждая точка останова также заблокирована для доступа к H2-Console.

enter image description here

Смежные вопросы