Le printemps des Tests d'Intégration: n'a pas Pu détecter de ressources par défaut emplacements
Je suis en cours d'exécution des tests d'intégration pour mon de Printemps de l'application de Démarrage avec Maven du Failsafe plugin. Lorsque je créer un simple test comme celui-ci:
@RunWith (SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(App.class)
public class MyTestIT {
@Test
public void test() {
assertTrue (true);
}
}
Puis exécutez mvn verify
je vois les entrées de journal suivantes juste avant le Printemps démarre application (par exemple, avant même le Printemps de Démarrage de la bannière):
Running org.....MyTestIT
2016-04-14 13:25:01.166 INFO ???? --- [ main]
or.sp.te.co.su.AbstractContextLoader :
Could not detect default resource locations for test class
[org....MyTestIT]: no resource found for suffixes
{ -context.xml, Context.groovy}.
2016-04-14 13:25:01.175 INFO ???? --- [ main]
or.sp.te.co.su.DefaultTestContextBootstrapper :
Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
2016-04-14 13:25:01.185 INFO ???? --- [ main]
or.sp.te.co.su.DefaultTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@57c758ac, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@a9cd3b1, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@13e39c73, org.springframework.test.context.support.DirtiesContextTestExecutionListener@64cd705f, org.springframework.test.context.transaction.TransactionalTestExecutionListener@9225652, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@654f0d9c]
Suivie par le Printemps de Démarrage de la bannière. Les tests puis exécuter sans erreur. Bien que ces messages sont imprimés avec une INFO du journal le niveau et l'exécution des tests bien, je suppose que tout va bien, mais je trouve toujours ces messages irritants. Donc, il y a quelque chose de mal avec ma configuration? Dois-je m'inquiéter au sujet de ces messages?
Même si il n'y avait rien de mal, je voudrais encore à comprendre ce qui est happending il et quelle est la signification des messages.
Mon maven-failsafe-plugin
est juste en utilisant la configuration par défaut et mon App.java
est juste une simple classe annotée avec @SpringBootApplication
.
Mise à JOUR 1:
Voici la configuration de mon test des plugins:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Ignore any tests that are marked by the @IntegrationTest annotation of Spring Boot -->
<excludedGroups>org.springframework.boot.test.IntegrationTest</excludedGroups>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
</executions>
</plugin>
J'ai aussi un spring-boot-starter-test
dépendance configuré et je suis en utilisant spring-boot-devtools
. En plus que tout le reste n'est pas de test liés.
Le projet lui-même est assez standard, l'utilisation d'hibernate et mysql et le web mvc pour le reste des points de terminaison. J'ai deux classes de configuration pour le printemps de sécurité sur la classe passe.
Dans le main/resources
dossier que j'ai un application.properties
fichier et un log4j2.xml. Il n'y a pas de test/resources
dossier, mais quand j'ai juste copier le principal/dossier de ressources pour test/resources
le journal ci-dessus les messages apparaissent toujours.
Mise à JOUR 2:
Je viens de créer un petit exemple d'application en essayant de recréer la question, et il semble que le mentionné journal de sortie commence à apparaître dès que j'ai mis un log4j2.xml
fichier dans un dossier de ressources. J'ai essayé de mettre dans src/main
ou src/test
ou les deux) avec des effets identiques.
Merci de partager un peu plus de détails comme le projet de la structure, pom.xml test fichier de configuration. Parce que quand votre exécution des tests d'intégration, le printemps de démarrage doit être en cours d'exécution avant d'exécuter les cas de test.
Avez-vous un dossier de ressources pour les tests?
J'ai actuellement n'ont pas de dossier de ressources pour les tests, mais je n'ai créer un, et le problème n'a pas disparu.
J'ai mis à jour la question. Et alors que la mise à jour, j'ai créé un petit projet de démo pour voir si je pouvais reproduire là et il semble que l'ajout d'un
log4j2.xml
causes mentionnées sortie du journal. Des idées?
OriginalL'auteur lanoxx | 2016-04-14
Vous devez vous connecter pour publier un commentaire.
C'est le comportement par défaut lors de l'exécution de Printemps des tests d'intégration.
À partir de la documentation de référence
Donc, ce n'est pas que ce soit lié à Maven, log4j ou le positionnement de l'aide du dossier de la ressource.
Dois-je m'inquiéter au sujet de ces messages?
Pas du tout, apparemment.
mais je trouve toujours ces messages irritants
Ne sais pas si et comment faire pour désactiver cette case (bien Sûr, vous pouvez l'éliminer en modifiant le niveau de journalisation de
AbstractContextLoader
àWARN
).OriginalL'auteur Ori Dar
Vous pouvez utiliser
AnnotationConfigContextLoader
en combinaison avec@Configuration.
Voir ici pour plus de détails.
OriginalL'auteur abhi
Vous pouvez annoter vous de la classe de test avec plus spécifiques configs pour le chargeur et l'utilisation de Java Config
Quelque chose comme:
Où ScalaTestConfig classe est annotée avec:
Basé sur Kulasangar du lien.
OriginalL'auteur AlexGera