Не удалось загрузить ApplicationContext и не удалось создать все beans

Я могу запустить свой проект и запустить его без ошибок. Но когда я запускаю тест, он не может.
Я вижу документ и шаг за шагом.
Я не знаю, где я делаю ошибки.

config:

@EnableScheduling
@SpringBootApplication
@EnableAsync
@EnableTransactionManagement(proxyTargetClass = true)
@EnableCaching
@MapperScan(basePackages = {"com.cybertron.*.service.dao",
    "com.cybertron.service.auth.dao","com.cybertron.service.mes.api.dao"})
public class CybertronMpsApplication {
  public static void main(String[] args) {
    SpringApplication.run(CybertronMpsApplication.class, args);
  }
}

тестовый файл

@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@Transactional
@SpringBootTest
@ActiveProfiles("test")
//@ContextConfiguration(classes = TestConfig.class)
public class DeliveryOrderControllerTest {

  @Autowired
  private MockMvc mockMvc;

  @Test
  public void generateInvoiceInfo() throws Exception {
    RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/order/insert/generateInvoiceInfo")
        .param("deliveryOrderId", "2499");
    mockMvc.perform(requestBuilder);
  }
}

сообщение об ошибке:

Чтобы запустить свой DeliveryOrderControllerTestclass, вам необходимо добавить еще одну аннотацию ниже к классу DeliveryOrderControllerTest @SpringBootTest (classes = CybertronMpsApplication .class)


person epawn7    schedule 16.04.2019    source источник


Ответы (3)


Я решаю это, но не понимаю, почему он может работать. _1_

person Anilm    schedule 16.04.2019
comment
stackoverflow.com/questions/38095449/. эта ссылка может помочь. - person epawn7; 16.04.2019
comment
Я использую application.yml для настройки проекта и добавляю аннотацию ниже. он по-прежнему не работает _1_ - person Anilm; 16.04.2019
comment
Которая ничего не запускает и ничего не проверяет, поэтому кажется, что она работает, потому что не взрывается. - person epawn7; 16.04.2019

Согласно документации, это сработало, потому что

@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@SpringBootTest(classes = DeliveryOrderControllerTest.class)
@ActiveProfiles("test")
//@ContextConfiguration(classes = TestConfig.class)
public class DeliveryOrderControllerTest {

  @Autowired
  private MockMvc mockMvc;

  @Test
  public void generateInvoiceInfo() throws Exception {
    RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/order/insert/generateInvoiceInfo")
        .param("deliveryOrderId", "2499");
    mockMvc.perform(requestBuilder);
  }
}
person epawn7    schedule 16.04.2019
comment
В контроллере много сервисов, а у контроллера нет конструктора для назначения сервисов. мне нужно @ заблокировать все сервисы? - person M. Deinum; 16.04.2019

Однако для написания тестов для контроллера вам нужно сделать только следующее.

 * Annotation that can be specified on a test class that runs Spring Boot based tests.
 * Provides the following features over and above the regular <em>Spring TestContext
 * Framework</em>:
 * <ul>
 * <li>Uses {@link SpringBootContextLoader} as the default {@link ContextLoader} when no
 * specific {@link ContextConfiguration#loader() @ContextConfiguration(loader=...)} is
 * defined.</li>

спасибо за ответ, но он не работает. все еще напоминание Не удалось загрузить ApplicationContext

@RunWith(SpringRunner.class)
public class DeliveryOrderControllerTest {

    @Mock
    private SomeService service;

    private MockMvc mockMvc;


    @Before
    public void before() throws IOException
    {
        controller = new DeliveryOrderController(settingsService);
        mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
    }


   @Test
   public void generateInvoiceInfo() throws Exception {
      // write test here
   }
}
person Ekansh Rastogi    schedule 16.04.2019
comment
Лучше имитировать сервисы, чем поднимать весь контекст и загружать все. - person epawn7; 16.04.2019
comment
java.lang.IllegalStateException: не удалось загрузить ApplicationContext в org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext (DefaultCacheAwareContextLoaderDelegate.java:124) в org.springframework.ContextConort.java:124. 83) по адресу org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNeeded (ServletTestExecutionListener.java:189) в org.springframework.test.context.web.ServletTestExecutionListener. .context.TestContextManager.prepareTestInstance (TestContextManager.java:230) в org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest (SpringJUnit4ClassRunner.java:228 SpringJUnit4ClassRunner.java:287) в org.junit.internal.runn ers.model.ReflectiveCallable.run (ReflectiveCallable.java:12) по адресу org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock (SpringJUnit4ClassRunner.java:289) в org.spring.java.context.java: SpringJUnit4ClassRunner.java:247) по адресу org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild (SpringJUnit4ClassRunner.java:94) по адресу org.junit.runners.ParentRunner: org.junit.runners.ParentRunner: $ 3.java.runner:3. runners.ParentRunner $ 1.schedule (ParentRunner.java:71) в org.junit.runners.ParentRunner.runChildren (ParentRunner.java:288) в org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:58) в .junit.runners.ParentRunner $ 2.evaluate (ParentRunner.java:268) в org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate (RunBeforeTestClassCallbacks.java:61. операторы.RunAfterTestClassCallbacks.eval uate (RunAfterTestClassCallbacks.java:70) в org.junit.runners.ParentRunner.run (ParentRunner.java:363) в org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runass (SpringJUnit.java) или .runner.JUnitCore.run (JUnitCore.java:137) по адресу com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:68) по адресу com.intellij.rta.java: : 47) в com.intellij.rt.execution.junit. JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:242) на com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70) Вызвано: org.springframework.beans.factory.Unsisfatdency с созданием ошибки nameException with name asyncApsTask ': неудовлетворенная зависимость, выраженная через поле' mpsRecordService '; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем 'recordService': неудовлетворенная зависимость выражена через поле 'stockService'; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем mdStockService: неудовлетворенная зависимость, выраженная через поле mProductService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «MProductServiceImpl»: неудовлетворенная зависимость, выраженная через поле «storageService»; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем mwarehouseService: неудовлетворенная зависимость, выраженная через поле storageLocationService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем storageLocationServiceImpl: неудовлетворенная зависимость, выраженная через поле storageLocationRecordService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем storageLocationRecordServiceImpl: неудовлетворенная зависимость, выраженная через поле outInStorageLockService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем outInStorageLockServiceImpl: неудовлетворенная зависимость, выраженная через поле expectOutInventoryEntityService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем expectOutInventoryEntityServiceImpl: неудовлетворенная зависимость, выраженная через поле RelationsService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «DDeliveryOrderAPlanRelationServiceImpl»: неудовлетворенная зависимость, выраженная через поле «deliveryOrderlineService»; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «deliveryOrderlineServiceImpl»: неудовлетворенная зависимость, выраженная через поле «deliveryOrderService»; вложенное исключение - org.springframework.beans.factory. UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «deliveryOrderServiceImpl»: неудовлетворенная зависимость, выраженная через поле «productRecordItemService»; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем productRecordItemService: неудовлетворенная зависимость, выраженная через поле machineWorkCalendarService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем MachineWorkCalendarService: неудовлетворенная зависимость, выраженная через поле machineService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем ResourceMachineService: неудовлетворенная зависимость, выраженная через поле mProductStatusService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем MProductStatusServiceImpl: неудовлетворенная зависимость, выраженная через поле adWfNodeService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем adWfNodeService: неудовлетворенная зависимость, выраженная через поле workerCenterCapacityService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем workerCenterCapacityServiceImpl: неудовлетворенная зависимость, выраженная через поле dataMissingService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем dataMissingServiceImpl: неудовлетворенная зависимость, выраженная через поле yuseiPurchaseOrderEntityService; вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: нет подходящего bean-компонента типа com.cybertron.purchase.service.web.YuseiPurchaseOrderEntityService: ожидается как минимум 1 bean-компонент, который квалифицируется как кандидат autowire. Аннотации зависимостей: {@ org.springframework.beans.factory.annotation.Autowired (required = true)} в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredBeanPostProcessor. beans.factory.annotation.InjectionMetadata.inject (InjectionMetadata.java:88) в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(AutowiredAnnotationBeanPostPropertyValues ​​(AutowiredAnnotationBeanPostPropertyValues). AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1264) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:553) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java: 483) в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:306) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingletonan или DefaultRegistry. beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:302) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197). preInstantiateSingletons (DefaultListableBeanFactory.java:761) в org.sp ringframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:867) в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:543) в org. 693) в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:360) в org.springframework.boot.SpringApplication.run (SpringApplication.java:303) в org.springframework.boot.test.contextContextLoggerBoot. (SpringBootContextLoader.java:120) в org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal (DefaultCacheAwareContextLoaderDelegate.java:98) в org.springframework.Test.ContextContextInternal .. еще 24 Причина: org.springframework.beans.factory.Unsat isfiedDependencyException: ошибка при создании bean-компонента с именем 'recordService': неудовлетворенная зависимость, выраженная через поле 'stockService'; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем mdStockService: неудовлетворенная зависимость, выраженная через поле mProductService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «MProductServiceImpl»: неудовлетворенная зависимость, выраженная через поле «storageService»; вложенное исключение - org.springframework.beans.factory. UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем mwarehouseService: неудовлетворенная зависимость, выраженная через поле storageLocationService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем storageLocationServiceImpl: неудовлетворенная зависимость, выраженная через поле storageLocationRecordService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем storageLocationRecordServiceImpl: неудовлетворенная зависимость, выраженная через поле outInStorageLockService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем outInStorageLockServiceImpl: неудовлетворенная зависимость, выраженная через поле expectOutInventoryEntityService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем expectOutInventoryEntityServiceImpl: неудовлетворенная зависимость, выраженная через поле RelationsService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «DDeliveryOrderAPlanRelationServiceImpl»: неудовлетворенная зависимость, выраженная через поле «deliveryOrderlineService»; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «deliveryOrderlineServiceImpl»: неудовлетворенная зависимость, выраженная через поле «deliveryOrderService»; вложенное исключение: org.springframework.beans.factory.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1264) в org.springframework.beans.factory.support.AbstractBeanFramework.beans.factory.support.AbstractBeanFramework.beans.factory.support. .support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:483) в org.springframework.beans.factory.support.AbstractBeanFactory $ 1..DgetObject (AbstractBeanBeanFactory. DefaultSingletonBeanRegistry.java:230) по адресу org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:302) по адресу org.springframework.beans.factory.support.Actory.java: orBeanFramework.factory.support. .springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDes criptor.java:208) в org.springframework.beans.factory.support. DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1138) в org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1066) в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor. java: 585) ... еще 42 Причина: org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем mdStockService: неудовлетворенная зависимость, выраженная через поле mProductService; вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «MProductServiceImpl»: неудовлетворенная зависимость, выраженная через поле «storageService»; вложенное исключение: org.springframework.beans.factory.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1138) в org.springframework.beans.factory.support.DefaultListableBeanFactory.factory.support. .annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:585) ... еще 55 - person Ekansh Rastogi; 16.04.2019