web-dev-qa-db-fra.com

spring - @ContextConfiguration ne parvient pas à charger le fichier de configuration dans src/test/resources

J'ai essayé de charger le fichier de configuration spring dans src/test/resources classpath avec la classe abstraite suivante:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/applicationContext.xml"})
public class BaseIntegrationTests {

}

J'ai le fichier applicationContext.xml dans src/test/resources mais le ressort ne peut pas le charger.

Je vous remercie.

25
robinmag

Pour être précis, c'est le contenu du répertoire de sortie du test} _ (target/test-classes) qui se trouve sur le chemin de la classe, pas src/test/resources. Mais les ressources sous src/test/resources sont copiées dans le répertoire de sortie du test par le resources:testResources goal (lié par défaut à la phase process-test-resources).

Ceci étant dit, votre code est correct et les ressources du code source du test doivent avoir été copiées par votre IDE ou par Maven lors de l'exécution des tests. Elles doivent donc être disponibles sur le chemin d'accès aux classes. Donc, il doit y avoir quelque chose d'autre qui ne va pas. Je peux voir que votre classe est une classe de base pour les tests d'intégration. Avez-vous configuré quelque chose d'extraordinaire dans votre pom? Pouvez-vous le montrer?

25
Pascal Thivent

Essayez en utilisant * afin qu'il puisse rechercher dans votre classpath

@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
16
prashant thakre

Il existe un bogue reporté avec l'utilisation de la dépendance spring-test (incluant SpringJUnit4ClassRunner) avec les versions de JUnit> 4.4.

Si vous utilisez une version de JUnit plus récente que la version 4.4, essayez de la réduire à la version 4.4 et voyez si cela résout votre problème.

5
Jesse Webb

votre contexte d'application doit être inclus dans classpath et mettez *:

@ContextConfiguration(locations = { "classpath:*/application-context.xml" })
4
borchvm

Vous semblez utiliser Maven et essayer d'exécuter les tests depuis Eclipse. Vérifiez le répertoire buil (target/test-classes/) pour applicationContext.xml. Si ce n'est pas le cas, vous devrez d'abord construire.

1
Bozho

Сли вы используете Maven est en cours de traitement par EclipseALTF5) может работать на вас.

0
Rupali

Je pense avoir un problème similaire, J'ai découvert que mon application-context.xml n'était pas sur target/test-classes/ni sur src/test/resources 

0
benzen