wake-up-neo.com

Maven: NoClassDefFoundError: org.springframework.test.context.junit4.SpringJUnit4ClassRunner

Ich habe ein Problem mit dem Klassenpfad.

  • Hintergrund: Erstellen und Ausführen einer Spring-WebApp. 
  • Ursprünglich war esein großes Projekt mit Dao/Service/Controller/Webapp. 
  • Ich habe gerade Mein Projekt in ein Maven-Modul-Projekt zerlegt, das im Wesentlichen Die webapp von den Dao- und Service-Schichten trennt. 
  • Nun testet mein Webapp-Junitdo läuft nicht. 
  • Der Junit-Code hat sich nicht geändert, und ich denke nicht, dass sich die Abhängigkeiten von Geändert haben (obwohl sie sich verschoben haben). 
  • Der Frühlingstest ist inmy lokalem Repository.
  • Der Spring-Test befindet sich in meiner Klassentestlaufzeit für Komponententests (zur Überprüfung wurde die mvn Debug-Protokollierung verwendet)
  • Ich habe keine anderen Klassenpfadprobleme. Alle Dao-Modultests laufen einwandfrei

Ich bekomme jedoch 

Java.lang.NoClassDefFoundError: Could not initialize class
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.

Ich werde meine Eltern und mein Kind pom.xml posten. Wenn jemand einen Vorschlag hat, wäre ich sehr dankbar.

Übergeordnetes Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 
                             http://maven.Apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>jake</groupId>


    <artifactId>prototype3</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>


    <modules>
        <module>prototype3.model</module>
        <module>prototype3.service</module>
        <module>prototype3.testadmin.webapp</module>
    </modules>

    <properties>
        <spring.version>4.1.6.RELEASE</spring.version>
        <thymeleaf.version>2.1.4.RELEASE</thymeleaf.version>
        <webflow.version>2.4.0.RELEASE</webflow.version>
        <internalrepo.dir>C:\Users\jake\_servers\internalRepository</internalrepo.dir>
    </properties>


    <distributionManagement>
        <repository>
            <id>internal.repo</id>
            <name>Temporary Staging Repository</name>
            <url>file://${internalrepo.dir}</url>
        </repository>
    </distributionManagement>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>


            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <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-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <!-- Spring Web Flow -->
            <dependency>
                <groupId>org.springframework.webflow</groupId>
                <artifactId>spring-webflow</artifactId>
                <version>${webflow.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-webmvc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-expression</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework.webflow</groupId>
                        <artifactId>spring-js</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.webflow</groupId>
                <artifactId>spring-js</artifactId>
                <version>2.4.1.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-webmvc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-web</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>


            <!-- javax -->
            <dependency>
                <groupId>javax.el</groupId>
                <artifactId>javax.el-api</artifactId>
                <version>2.2.4</version>
            </dependency>


            <!-- Spring ORM support -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <!-- -hibernate -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>4.3.10.Final</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>9.4-1200-jdbc41</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-simple</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.14</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-c3p0</artifactId>
                <version>4.3.10.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>5.1.3.Final</version>
            </dependency>


            <!-- Hibernate uses slf4j for logging, for our purposes here use the simple 
                backend -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.7.12</version>
            </dependency>

            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.19.0-GA</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
                <scope>runtime</scope>
            </dependency>

            <dependency>
                <groupId>taglibs</groupId>
                <artifactId>standard</artifactId>
                <version>1.1.2</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.Apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>4.0</version>
            </dependency>


            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-utils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.Apache.maven</groupId>
                        <artifactId>maven-artifact</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-container-default</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-httpclient</groupId>
                        <artifactId>commons-httpclient</artifactId>
                    </exclusion>
                </exclusions>
                <type>maven-plugin</type>
                <scope>test</scope>
            </dependency>

            <!-- Json -->
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
                <version>2.4.3</version>
            </dependency>

            <!-- thymeleaf -->
            <dependency>
                <groupId>org.thymeleaf</groupId>
                <artifactId>thymeleaf-spring4</artifactId>
                <version>${thymeleaf.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.thymeleaf</groupId>
                <artifactId>thymeleaf</artifactId>
                <version>${thymeleaf.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.thymeleaf.extras</groupId>
                <artifactId>thymeleaf-extras-tiles2</artifactId>
                <version>2.1.1.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.thymeleaf</groupId>
                        <artifactId>thymeleaf</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>jcl-over-slf4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.thymeleaf.extras</groupId>
                <artifactId>thymeleaf-extras-tiles2-spring4</artifactId>
                <version>2.1.1.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.thymeleaf</groupId>
                        <artifactId>thymeleaf-spring4</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.thymeleaf</groupId>
                        <artifactId>thymeleaf</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.10</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.3.1</version>
            </dependency>

<!--  Our Own-->
            <dependency>
                <groupId>jake</groupId>
                <artifactId>prototype3.model</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>jake</groupId>
                <artifactId>prototype3.service</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>



        </dependencies>
    </dependencyManagement>
</project>

Kind Pom

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>jake</groupId>
        <artifactId>prototype3</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>prototype3.testadmin.webapp</artifactId>

    <properties>
        <deploy.directory>C:\Users\jake\_servers\tc8\webapps</deploy.directory>
        <deploy.name>prototype3</deploy.name>
        <l4j.test>C:\Users\jake\__workspace\prototype3\prototype3.testadmin.webapp\src\main\resources</l4j.test>
        <webinf.dir>C:\Users\jake\__workspace\prototype3\prototype3.testadmin.webapp\WebContent\WEB-INF</webinf.dir>
        <devroot.directory>C:\Users\jake\__workspace\prototype3\prototype3.testadmin.webapp\</devroot.directory>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>

        <!-- Spring Web Flow -->
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-webflow</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-js</artifactId>
        </dependency>


        <!-- javax -->
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
        </dependency>


        <!-- Spring ORM support -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>



        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.Apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
        </dependency>


        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <type>maven-plugin</type>
            <scope>test</scope>
        </dependency>

        <!-- Json -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>

        <!-- thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring4</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-tiles2</artifactId>
        </dependency>

        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-tiles2-spring4</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </dependency>

        <!-- Our own -->
        <dependency>
            <groupId>jake</groupId>
            <artifactId>prototype3.model</artifactId>
        </dependency>

        <dependency>
            <groupId>jake</groupId>
            <artifactId>prototype3.service</artifactId>
        </dependency>

    </dependencies>




    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>



            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <outputDirectory>${deploy.directory}</outputDirectory>
                    <webResources>
                        <!-- <resource> <directory>src\main\resources</directory> </resource> -->
                    </webResources>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <id>enforce</id>
                        <configuration>
                            <rules>
                                <DependencyConvergence />
                            </rules>
                        </configuration>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <includes>
                        <include>**/A01TestSuite.Java</include>
                        <include>**/ServiceTestSuite.Java</include>
                        <include>**/ZFlowTestSuite.Java</include>
                    </includes>
                    <additionalClasspathElements>
                        <additionalClasspathElement>${webinf.dir}</additionalClasspathElement>
                    </additionalClasspathElements>
                    <systemPropertyVariables>
                        <log4j.configuration>file:${l4j.test}/log4j.test.properties</log4j.configuration>
                    </systemPropertyVariables>

                </configuration>
            </plugin>

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.6.1</version>
                <configuration>
                    <followSymLinks>false</followSymLinks>
                    <filesets>
                        <fileset>
                            <directory>${deploy.directory}/${deploy.name}</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileset>
                        <fileset>
                            <directory>${devroot.directory}/target</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileset>
                        <fileset>
                            <directory>${deploy.directory}</directory>
                            <includes>
                                <include>${deploy.name}.war</include>
                                <include>${deploy.name}</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>

        </plugins>
        <finalName>${deploy.name}</finalName>
    </build>




</project>

UPDATE

Testlauf: 1, Fehler: 0, Fehler: 1, Übersprungen: 0, Verstrichene Zeit: 0,002 Sek. <<< FEHLER! - in jake.prototype2.test.testrunner.ServiceTestSuite initializationError (jake.prototype2.test.service.UserAdminServiceTest) Verstrichene Zeit: 0,002 s <<< ERROR! Java.lang.NoClassDefFoundError: Die Klasse org.springframework.test.context.junit4.SpringJUnit4ClassRunner .__ konnte nicht initialisiert werden. at Sun.reflect.NativeConstructorAccessorImpl.newInstance0 (native Methode) at Sun.reflect.NativeConstructorAccessorImpl.newInstance (unbekannte Quelle) at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance (unbekannte Quelle) at Java.lang.reflect.Constructor.newInstance (unbekannte Quelle) 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.runners.model.RunnerBuilder.runners (RunnerBuilder.Java: 101) at org.junit.runners.model.runnerBuilder.runners (RunnerBuilder.Java:87) in der org.junit.runners.Suite (Suite.Java:10

11
Jake

Ich weiß nicht warum, aber in meinem Fall kommt der Spring-Boot-Starter-Test mit junit 4.10 und ich finde, dass mit 4.12 kompiliert wird, also nachträglich

 <dependency> 
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version> 
</dependency>

Funktioniert gut. Vielleicht eine Fehlkonfiguration im Pom von Springboot

25
Carlos Lacerda

In einem Kommentar haben Sie gesagt, dass das Projekt kompiliert wird, aber Tests nicht ausgeführt werden. Maven-surefire-plugin mag (wie in meinem Fall) die Kulisse sein ... Ich bekam den gleichen Fehler, aber nach ein wenig Graben wusste ich, dass:

Java.lang.NoClassDefFoundError: Could not initialize class
org.springframework.test.context.junit4.SpringJUnit4ClassRunner.

wurde verursacht durch:

Java.lang.IllegalStateException: SpringJUnit4ClassRunner requires JUnit 4.12 or higher.
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<clinit>

dies wurde ausgelöst, weil maven-surefire-plugin keinen Test-Framework-Provider aus dem Klassenpfad auswählte, sondern stattdessen einen eigenen veralteten junit-Provider lieferte.

Ich werde den Fehler durch Angabe des Namens des JUnit-Artefakts beseitigen:

<plugins>
...
    <plugin>
        <groupId>org.Apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>{your.surefire.version}</version>
        <configuration>
            <junitArtifactName> junit:junit:{your.junit.version} </junitArtifactName>
        </configuration>
    </plugin>
...
</plugins>
12
Alexey Lagunov

Für jeden, der sich das anschaute, hatte ich ein ähnliches Problem, und das Problem hatte mit einem logging-impl-Konflikt zu tun, der aus den transitiven Abhängigkeiten von Maven in Spring Boot gezogen wurde. Nachdem ich die Boot-Starter-Protokollierung ausgeschlossen hatte, wurde das Problem behoben.

SpringJUnit4ClassRunner konnte wahrscheinlich nicht im Classloader aus dem Protokollierungskonflikt initialisieren, und der NoClassDefFoundError wurde aus diesem Grund an einer anderen Stelle im Code ausgelöst.

6
scottmf

Ich habe denselben Fehler in Spring Boot festgestellt. Ich habe gerade die Spring-Boot-Starter-Parent-Version von 1.5.6.RELEASE auf 1.5.10.RELEASED geändert.

Diese Version des Federstiefels enthält bereits die folgende Klasse: 

org.springframework.test.context.junit4.SpringJUnit4ClassRunner

0
Paolo Guevara

Das ist mir kürzlich begegnet. Ich habe gerade die Version von 3.0.7.RELEASE auf 3.1.1.RELEASE aktualisiert. 

0
arn-arn

Ich habe eine Lösung gefunden, keine Antwort auf meine Frage.

Die Lösung bestand darin, das Projekt in Stufen aufzuteilen.

  • Zunächst erstellte ich drei eigenständige Projekte und führte die relevanten Komponententests aus. (Natürlich muss dies in der richtigen Reihenfolge erfolgen, um die Abhängigkeit zu gewährleisten.)

  • Zweitens habe ich das übergeordnete Pom- und Depency-Management erstellt.

  • Drittens habe ich jedes Standalone-Projekt nacheinander unter das Parent gestellt. Ich habe die Abhängigkeiten zwischen Kindern und Buben durch eine iterative Testreihe schrittweise reduziert. 

Ich habe immer noch keine Ahnung, warum die obige Struktur versagt hat. Da jetzt alles funktioniert, gibt es keinen Grund, die Reduktion fortzusetzen, bis ich meine Webapp endgültig wieder brechen kann.

0
Jake