2016-06-03 1 views
1

Tous,config Typesafe dans les tests (Impossible de résoudre la substitution d'une valeur)

J'utilise la configuration de base de typesafe HOCON dans un projet.

Il s'agit d'un projet Scala, et nous visons une couverture de test de 100%.

J'ai deux tests configs: test1.conf et test2.conf ... voici le code pour le chargement

object TypeSafeTestConfigProvider { 
    System.setProperty("foo","value") 
    System.setProperty("bar","value") 
    val config1 = ConfigFactory.load("test1.conf") 
    val config2 = ConfigFactory.load("test2.conf") 
} 

ni foo ni bar peuvent être résolus pour une raison quelconque si je lance un seul test. .. mais ils résolvent sans problème si je fais tous mes tests ensemble ... ce qui est très gênant.

Il semble que la classe ConfigFactory prend un instantané statique de System.properties et les modifications futures apportées aux propriétés du système ne sont pas reflétées dans le processus de résolution.

Comment recommanderiez-vous de configurer mes tests?

+0

Comment référencez-vous 'TypeSafeTestConfigProvider' lorsque vous exécutez un seul test? – Sergey

+0

'import TypeSafeTestConfigProvider.config1' – echen

+2

mon collègue a trouvé que l'exécution' invalidateCaches() 'résout le problème ... bizarre ... – echen

Répondre

0

com.typesafe.config.ConfigFactory.invalidateCaches(); a fait le travail pour moi. Jouer avec les propriétés du système dans les tests unitaires est une douleur.