2017-06-16 3 views
0

Ich habe eine Spring Boot-Anwendung, die eine Ausnahme auslöst 'java.lang.IllegalStateException: Konnte TestContextBootstrapper [null] nicht geladen werden, wenn von JUnit-Test ausgeführt wird.Spring Boot Anwendung wirft Ausnahme, wenn von Junit Test läuft

pom.xml:

<properties> 
     <java.version>1.7</java.version> 
     <spring.version>4.2.5.RELEASE</spring.version>  
</properties> 

<dependencies> 

<dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
<dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <version>1.4.2.RELEASE</version> 
      <scope>test</scope> 
      <exclusions> 
       <exclusion> 
        <groupId>ch.qos.logback</groupId> 
        <artifactId>logback-classic</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <version>1.4.2.RELEASE</version> 
     </dependency> 
</dependencies> 

Da diese pom.xml hat unterschiedliche Feder Versionen wie Feder 4.2.5.RELEASE und Feder-boot 1.4.2.RELEASE, wenn es von JUnit-Test läuft es wirft Ausnahme:

JUnit Logs:

java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @BootstrapWith's 'value' attribute or make the default bootstrapper class available. 
    at org.springframework.test.context.BootstrapUtils.resolveTestContextBootstrapper(BootstrapUtils.java:143) 
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:105) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:152) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:143) 
    at org.springframework.test.context.junit4.SpringRunner.<init>(SpringRunner.java:49) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
Caused by: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.findAllMergedAnnotations(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/util/Set; 
    at org.springframework.test.context.BootstrapUtils.resolveExplicitTestContextBootstrapper(BootstrapUtils.java:150) 
    at org.springframework.test.context.BootstrapUtils.resolveTestContextBootstrapper(BootstrapUtils.java:126) 
    ... 21 more 

Jeder Vorschlag für die Version Anpassung zwischen Feder und Feder-boot?

Antwort

1

Nach the change log wurde org.springframework.core.annotation.AnnotatedElementUtils.findAllMergedAnnotations() seit Version 4.3 eingeführt. Daher müssen Sie möglicherweise die Version von <spring.version>4.2.5.RELEASE</spring.version> zu <spring.version>4.3.0.RELEASE</spring.version> oder höher ändern.

+ * @since 4.3 
+ * @see #findMergedAnnotation(AnnotatedElement, Class) 
+ */ 
+ public static <A extends Annotation> Set<A> findAllMergedAnnotations(AnnotatedElement element, 
+   Class<A> annotationType) { 
+0

Änderungsfeder-boot-Starter-Testversion 1.1.4 und mit @RunWith (SpringJUnit4ClassRunner.class) und @SpringApplicationConfiguration (Klassen = Application.class) arbeitete für mich. –

+0

Ah, Downgrade-Starter-Test auf 1.1.4. Klingt wie eine andere Lösung. –

Verwandte Themen