Maison  >  Questions et réponses  >  le corps du texte

<scope>test</scope> provoque une erreur lorsque Mavn exécute le test

Lors de l'apprentissage du test maven, lors de l'exécution du test mvn, org.junit ne sera pas trouvé
Il a été introduit dans pom.xml

    <dependencies>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

Le message d'erreur est le suivant

Le répertoire des fichiers est le suivant

bonjour le répertoire et les fichiers suivants existent

où GreeterTest est le test

L'exécution de mvn compile ou du package mvn signalera également une erreur

Lorsque la portée de la dépendance junit dans pom.xml est supprimée, la compilation et les tests peuvent réussir.

    <dependencies>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

Quelle en est la raison ? Maven compile-t-il les fichiers *Test en même temps lors de l'exécution de la compilation ? Alors pourquoi mvn test ne peut-il pas réussir ?
Mvn test n'exécutera-t-il pas automatiquement les fichiers *Test ? Et le test de portée confirme que Junit sera introduit pendant les tests

PHPzPHPz2712 Il y a quelques jours937

répondre à tous(1)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-17 10:10:51

    Ce problème est en fait dû au fait que vous n'êtes pas familier avec la structure des fichiers maven. Les classes de test sont généralement placées dans src/test/java au lieu de src/main/java. Lorsque maven compile, src/main /java le fait. ne fait pas référence au pot de <scope>test</scope>, mais la compilation du test sous src/test/java fera référence au pot de <scope>test</scope>

    répondre
    0
  • Annulerrépondre