title: Java - Spring boot - Integration test - TestEntityManager does not get injected
body: <p>I've an integration test to test the REST end-points of my Spring boot server.</p>
  
  <p>I need to create some data (without using the REST end-points), so I'm trying to use a TestEntityManager, 
  so I annotated my test class with  @SpringBootTest. So far so good, the test starts the spring boot context, and so my server, and the test passes.</p>
  
  <p>Problem: 
  I need to start my Spring boot server outside of this integration test, to have an instance running for all the integration tests (and not a new one at each test). 
  To do so, I start the server using the spring-boot-maven-plugin in the pre-integration-test. 
  So far so good, it starts. But then, to prevent my integration test from starting its own Spring boot server, I need to remove the @SpringBootTest annotation from my IT class.<br>
  Then the problems arrive.
  Even with the annotation @AutoConfigureTestEntityManager, my TestEntityManager does not get injected anymore.</p>
  
  <p>Any idea ?
  Many thanks</p>
  
  <pre><code>2017-03-14 10:42:31,371 ERROR o.s.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@56bf6f1e] to prepare test instance [be.mycompany.controllers.mediaRestControllerIT@340ef431]
  java.lang.IllegalStateException: Failed to load ApplicationContext
      at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
      at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
      ....
  Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'testEntityManager' defined in class path resource [org/springframework/boot/test/autoconfigure/orm/jpa/TestEntityManagerAutoConfiguration.class]: Unsatisfied dependency expressed through method 'testEntityManager' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManagerFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
      ... 26 common frames omitted
  Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManagerFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
  </code></pre>
  
  <p>Here is the code</p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @ComponentScan(basePackages = {"be.mycompany"})
  @AutoConfigureTestEntityManager
  @Transactional
  //@SpringBootTest
  @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
  public class MediaRestControllerIT extends AbstractIntegrationTest {
      @Autowired
      TestEntityManager testEntityManager;
  
      ...
  }
  </code></pre>