it-swarm.com.de

Der import org.springframework.test.context.junit4.SpringJUnit4ClassRunner kann nicht aufgelöst werden

Ich bin ein Neuling bei Spring und dies ist auch meine erste Frage zu StackOverflow. Ich werde versuchen, dies so verständlich wie möglich zu machen.

Ich versuche, einen Web-Service-Client mit Spring und Maven in this tutorial: zu erstellen, und ich erhalte folgende Fehlermeldung: Der Import org.springframework.test.context.junit4 kann nicht aufgelöst werden

Hier ist mein Code:

package demo;

import hello.WsClientApplication;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; //this won't import


@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = WsClientApplication.class)
public class WsClientApplicationTests {

    @Test
    public void contextLoads() {
    }

}

Hier ist mein pom.xml falls Sie es brauchen.

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-consuming-web-service</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.3.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
           <dependency>
               <groupId>org.springframework.ws</groupId>
               <artifactId>spring-ws-core</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- tag::wsdl[] -->
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.12.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <schemaLanguage>WSDL</schemaLanguage>
                    <generatePackage>hello.wsdl</generatePackage>
                    <schemas>
                        <schema>
                            <url>http://wsf.cdyne.com/WeatherWS/Weather.asmx?wsdl</url>
                        </schema>
                    </schemas>
                </configuration>
            </plugin>
            <!-- end::wsdl[] -->
        </plugins>
    </build>

</project>

Ich habe einige andere Lösungen in StackOverflow ausprobiert, aber ich kann es nicht zum Laufen bringen.

Vielen Dank.

11
Juan Carlos

Sie müssen eine Abhängigkeit von spring-boot-starter-test hinzufügen:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-test</artifactId>
  <scope>test</scope>
</dependency>
19
Wim Deblauwe

Wenn Sie den neuesten Spring-Boot-Modus 1.5.2 RELEASE verwenden, ist @SpringApplicationConfiguration nicht mehr verfügbar. Stattdessen müssen Sie @SpringBootTest verwenden. Referenz hier (@ Spring Boot Starter Test in Spring Boot )

11
SekharKari

Gradle

In der Regel würde dies durch Hinzufügen erfolgen 

testCompile("org.springframework.boot:spring-boot-starter-test")

zum Abhängigkeitenblock wie in:

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("junit:junit")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

Danach sollte es möglich sein, eine Importanweisung an die Spitze Ihrer Klasse zu schreiben

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

So können Sie die Annotation verwenden:

@RunWith(SpringJUnit4ClassRunner.class)
public class MyAppTest {

}
6
Baker

Ich weiß, dass dies ziemlich spät beantwortet wurde, aber ich hatte das gleiche Problem und konnte feststellen, dass ich es auf zwei Arten beheben konnte.

  1. Ich konnte die <scope> test </ scope> -Tags entfernen und die Einschränkung wurde entfernt
  2. Ich hatte ein Problem damit, dass intellij beim Test nicht richtig gehandhabt wurde, also stellte ich sicher, dass es als Testwurzel markiert war. Ich änderte es von grün -> grau -> zurück zum grünen Testwurzel, und das Problem wurde behoben.
0
Micheal

manchmal startet Maven das Herunterladen von Abhängigkeiten und wird nicht beendet .. __ Gehen Sie zu Ihrem .m2-Ordner und geben Sie Folgendes ein:

find . -name *progre*

dieser Befehl zeigt Ihnen jede Datei mit dem Tag "in-progess" an. Dabei handelt es sich um fehlende oder noch nicht abgeschlossene Dateien.

löschen Sie den Ordner und versuchen Sie, die Abhängigkeiten erneut zu aktualisieren.

0
Pompeu