Не удалось загрузить ApplicationContext только из интеграционных тестов - PullRequest
0 голосов
/ 30 сентября 2019

ПО пружинной загрузке 2.1.8. Приложение RELEASE при запуске из интеграционного теста

Я использую JPA, gradle dep:

implementation("org.springframework.boot:spring-boot-starter-data-jpa")

Мой тест:

@ActiveProfiles("test") // application.properteis is the same as for local profile.
@ExtendWith(SpringExtension.class)
@TestPropertySource(properties = "logging.file=build/logs/unittest.log")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

(там есть какой-то фиктивный пустой тест, который ничего не тестирует. Смысл в том, чтобы просто запустить приложение из теста. И проверить, работает ли контекст.)

Я получил:

Не удалось загрузить ApplicationContext java.lang.IllegalStateException: Не удалось загрузить ApplicationContext

Не удалось где-то при проверке, но локально не исключение из-за некоторых несоответствий в сущностях JPA и связей с ними:

Причина: org.hibernate.MappingException: внешний ключ..blah blah

НО, когда я обычно запускаю приложение, у меня нет этого исключения.

Я полагаю, что интеграционные тесты пытаются сделать слишком много, выполняя всю эту проверку по всем объектам?

Q: Как этого избежать, мне просто нужно, чтобы он запускался, когда он запускается при нормальном запуске приложения? (даже если есть проблема с отображением jpa, я не хочу, чтобы они предотвращали сбой контекставести себя так же, когда работает нормально)

снова : application-test / local.properties для локального (нормального) профиля и тестового a , полностью идентичного . та же база данных

Трассировка стека: (поместите его здесь временно - не верьте, важно)

Не удалось загрузить ApplicationContext java.lang.IllegalStateException: Ошибказагрузить ApplicationContext по адресу org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext (DefaultCacheAwareContextLoaderDelegate.java:125) по адресу org.springframework.test.conxtxt.support.Defxt.sjpport.ratet.conftest.context.support.DependencyInjectionTestExecutionListener.injectDependencies (DependencyInjectionTestExecutionListener.java:118) при org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance (DependencyInjectionTestExecutionListener.java:83) при org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener. prepareTestInstance (SpringBootDependencyInjectionTestExecutionListener.java:43) в org.springframework.test.context.TestContextManager.prepareTestInstance (TestContextManager.java:246) в org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance (SpringExtension.java:97) в org.junit.estcript.orp.decript. $. invokeTestInstancePostProcessors $ 6 (ClassTestDescriptor.java:352) по адресу org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable (JupiterTestDescriptor.java:204estestxt.DirectoryDescriptDescriptDescriptDescriptDescriptDescriptDjDesTestTechDesDDTKT.TD0TD0T.TD0T.TD0D0T.TOP)java: 352) в java.base / java.util.stream.ReferencePipeline $ 3 $ 1.accept (ReferencePipeline.java:195) в java.base / java.util.stream.ReferencePipeline $ 2 $ 1.accept (ReferencePipeline.java:177)в java.base / java.util.ArrayList $ ArrayListSpliterator.forEachRemaining (ArrayList.java:1654) в java.base / java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:484) в java.base / java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java: 474) в java.base / java.util.stream.StreamSpliterators $ WrappingSpliterator.forEachRemaining (StreamSpliterators.java:312) в java.base / java.util.stream.Streams $ ConcatSpliterator.forEachRemaining (Stream )s.avaв java.base / java.util.stream.Streams $ ConcatSpliterator.forEachRemaining (Streams.java:734) в java.base / java.util.stream.ReferencePipeline $ Head.forEach (ReferencePipeline.java:658) в org.junit.jupiter.engine.descriptor.ClassTestDescriptor.invokeTestInstancePostProcessors (ClassTestDescriptor.java:351) вorg.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateAndPostProcessTestInstance (ClassTestDescriptor.java:270) по адресу org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda $ testInstancesj.jjjjjjjjjjjjjjjjjjjjjjjjjjjjgjjjjjjjjjjjjjgjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjtjtjjjjjjtjtjtjtjtjtjp. .engine.descriptor.ClassTestDescriptor.lambda $ testInstancesProvider $ 3 (ClassTestDescriptor.java:263) в java.base / java.util.Optional.orElseGet (Optional.java:369) в org.junit.jupiter.enlass.TescriptDescript. лямбда $ testInstancesProvider $ 4 (ClassTestDescriptor.java:262) в org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda $ подготовить $ 0 (TestMethodTestDescriptor.java:98) в org.junith. выполнить (ThrowableCollector.java:73) по адресу org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare (TestMethodTestDescriptor.java:97) по адресу org.junit.jupiter.encript.descriptor.TestMethodetor.TextTestDextTestDestна org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ prepare $ 1 (NodeTestTask.java:107) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector.java:73) в org.jp. .support.hierarchical.NodeTestTask.prepare (NodeTestTask.java:107) в org.junit.platform.engine.support.hierarchical.NodeTestTask.execute (NodeTestTask.java:75) в java.base / java.til для(ArrayList.java:1540) по адресу org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll (SameThreadHierarchicalTestExecutorService.java:38) по адресу org.junit.platform.odelaTurical.Tecical.ppNodeTestTask.java:139) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector.java:73) в org.junit.platform.engine.support.hierarchical.NodeTestTaskus (7).java: 125) в org.junit.platform.engine.support.hierarchical.Node.around (Node.java:135) вorg.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 8 (NodeTestTask.java:123) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execu73oror или org ().junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively (NodeTestTask.java:122) в org.junit.platform.engine.support.hierarchical.NodeTestTask.execute (NodeTestTasek) jj.util. .lambda $ executeRecursively $ 5 (NodeTestTask.java:139) в org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute (ThrowableCollector.java:73) в org.junit.platform.engine.Tical.Sort. лямбда $ executeRecursively $ 7 (NodeTestTask.java:125) в org.junit.platform.engine.support.hierarchical.Node.around (Node.java:135) в org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda $ executeRecursively $ 8 (NodeTestTask.java:123) в org.junit.platform.eningu.suort.ThrowableCollector.execute (ThrowableCollector.java:73) в org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively (NodeTestTask.java:122) в org.junit.platform.ex к. (NodeTestTask.java:80) по адресу org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit (SameThreadHierarchicalTestExecutorService.java:32) по адресу org.junest.pigure.Hieraricalchtech (: 57) вorg.junit. launcher.core.DefaultLauncher.execute (DefaultLauncher.java:154) в org.junit.platform.launcher.core.DefaultLauncher.execute (DefaultLauncher.java:90) в org.gradle.api.internal.tasks.testform.junitplat. JUnitPlatformTestClassProcessor $ CollectAllTestClassesExecutor.processAllTestClasses (JUnitPlatformTestClassProcessor.java:102) при org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor $ CollectAllTestClassesExecutor.access $ 000 (JUnitPlatformTestClassProcessor.java:82) в org.gradle.api.internal.tasks.testing.junitplatform. ccessorImpl.invoke0 (собственный метод) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в java.base / jdk.internal.reflect.DelegatingMethojorjava.base / java.lang.reflect.Method.invoke (Method.java:566) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:35) в org.gradle.internal.dispatch.ReflectionDispatch. dispatch (ReflectionDispatch.java:24) по адресу org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch (ContextClassLoaderDispatch.java:32) по адресу org.gradle.internal.dispatch.ProxyDispatchAdapter.jpv. .sun.proxy. $ Proxy2.stop (неизвестный источник) в org.gradle.api.internal.tasks.testing.worker.TestWorker.stop (TestWorker.java:132) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.base / java.lang.reflect.Method.invoke (Method.java:5).gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:35) в org.gradle.internal.dispatch.ReflectionDispatch.dispatch (ReflectionDispatch.java:24) в org.gradle.internal.remack.inessageHub.MB$ DispatchWrapper. $ Handler.run (MessageHub.java:404) в org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute (ExecutorPolicy.java:63) в org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run (46) в java.base / java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128) в java.base / java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:628) в org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnactjable (55). в java.base / java.lang.Thread.run (Thread.java:834) Причина: org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем entityManagerFactory, определенным в ресурсе пути класса [org / springframework /boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]: сбой вызова метода init;вложенным исключением является org.hibernate.MappingException: внешний ключ (FKssmt1homue4qrva4i8wh9i0c2: mymodel_language_title [mymodel_uuid])) должен иметь такое же количество столбцов, что и ссылочный первичный ключ (mymodel_language_title], mymodelu, mymodelu_uituorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1778) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:593) при org.springframework.beans.factory. support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:515) в org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBeBean(DefaultSingletonBeanRegistry.java:222) в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318) в org.springframework.beans.factory.support.Abory.jeborg.springframework.context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.java:1105) в org.springframework.context.support. ServletWebServerApplicationContext.java:141) в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:744) в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.jworkr для загрузки.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.pring.proing.pring.pring.pring.pring.pring.pring.pring.pring.pring) .service). (SpringApplication.java:312) по адресу org.springframework.boot.test.context.SpringBootContextLoader.loadContext (SpringBootContextLoader.java:120) по адресу org.springframework.test.context.cache.DefaultCacheAwareDetaConteDateInteConjectorg.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext (DefaultCacheAwareContextLoaderDelegate.java:117) ... еще 87 Вызвано: org.hibernate.MappingException: Внешний ключ (FKssmt1homue4qrva4i8wh9i0c2: mymodel_language_title [mymodel_uuid])) должен иметь то же количество столбцов, что и первичный ключ, на который ссылаются (mymodel_language_tube_iber_tiber) [mymodel_language_tube] [].mapping. org.hibernate.boot.internal.InFlightMetadataCollectorImpl.secondPassCompileForeignKeys (InFlightMetadataCollectorImpl.java:1849) в org.hibernate.boot.internal.InFlightMetadata.oMetadataBuildingProcess.complete (MetadataBuildingProcess.java:287) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata (EntityManagerFactoryBuilderImpl.java:904) в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build (EntityManagerFactoryBuilderImpl.java:935) в org.springframework.orm

...