2016-06-03 14 views
1

Alle,typsichere config in Tests (kann nicht Substitution auf einen Wert auflösen)

Ich bin mit dem HOCON basierend typsichere config in einem Projekt.

Dies ist ein Scala Projekt, und wir streben eine 100% ige Testabdeckung an.

Ich habe zwei Test configs: test1.conf und test2.conf ... hier ist der Code für das Laden

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

weder foo noch bar kann wenn ich einen einzigen Testlauf aus irgendeinem Grund aufgelöst werden. ..aber sie lösen ohne ein Problem, wenn ich alle meine Tests zusammen laufen lasse ... was sehr unbequem ist.

Es scheint, die Klasse ConfigFactory nimmt eine statische Momentaufnahme von System.properties und zukünftige Änderungen an Systemeigenschaften werden nicht im Auflösungsprozess wiedergegeben.

Wie empfehlen Sie, dass ich meine Tests einstelle?

+0

Wie verweisen Sie auf diesen 'TypeSafeTestConfigProvider', wenn Sie einen einzelnen Test ausführen? – Sergey

+0

'import TypeSafeTestConfigProvider.config1' – echen

+2

mein Kollege festgestellt, dass die Ausführung von 'invalidateCaches()' das Problem behebt ... seltsam ... – echen

Antwort

0

com.typesafe.config.ConfigFactory.invalidateCaches(); haben den Job für mich erledigt. Das Spielen mit Systemeigenschaften in Komponententests ist ein Pain.