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