web-dev-qa-db-fra.com

L'import org.springframework.test.context.junit4.SpringJUnit4ClassRunner ne peut pas être résolu.

Je suis un débutant au printemps et c’est aussi ma toute première question sur StackOverflow, je vais donc essayer de rendre cela aussi compréhensible que possible.

J'essaie de créer un client de service Web utilisant Spring et Maven sur this tutorial: et j'obtiens le message d'erreur suivant: l'importation org.springframework.test.context.junit4 ne peut pas être résolue.

Voici mon 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() {
    }

}

Voici mon pom.xml au cas où vous en auriez besoin.

<?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>

J'ai essayé d'autres solutions dans StackOverflow mais je ne peux pas le faire fonctionner.

Merci.

11
Juan Carlos

Vous devez ajouter une dépendance sur spring-boot-starter-test:

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

Maintenant, si vous utilisez la dernière version de spring-boot, 1.5.2 RELEASE, @SpringApplicationConfiguration n'est plus disponible, vous devez utiliser @SpringBootTest. Référence ici (@ test de démarrage de démarrage à ressort dans Spring Boot )

11
SekharKari

Gradle

En grade, cela se ferait en ajoutant 

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

au bloc des dépendances comme dans:

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

Après cela, il devrait être possible d'écrire une déclaration d'importation en haut de votre classe

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

Vous permettant d'utiliser l'annotation:

@RunWith(SpringJUnit4ClassRunner.class)
public class MyAppTest {

}
6
Baker

Je sais que cela a été répondu assez tard, mais j’ai eu le même problème et j’ai trouvé que je pouvais résoudre le problème de deux manières.

  1. J'ai pu supprimer les balises <scope> test </ scope> et cela a supprimé la restriction
  2. Un problème avec intellij ne fonctionnant pas correctement lors des tests, je me suis donc assuré qu'il était marqué comme racine de test. Je l'ai changé de vert -> gris -> à la racine de test verte et cela a résolu mon problème.
0
Micheal

parfois maven commence à télécharger des dépendances et ne termine pas . Allez dans votre dossier .m2 et tapez:

find . -name *progre*

cette commande vous montrera chaque fichier avec la balise "in-progess", qui sont les fichiers manquants ou non finis.

supprimez le dossier et essayez à nouveau de mettre à jour les dépendances.

0
Pompeu