Erste Beobachtung ist, dass dies keine Komponententests sind, da sie "Dienste" benötigen, um ausgeführt zu werden. Ich schlage vor, die Anwendung neu zu entwerfen, damit Tests ohne externe Dienste ausgeführt werden können. Ein Ansatz könnte sein, abstrakte Klassen und Google Mock zu verwenden. Das Problem mit einem externen Dienst, der den normalen TearDown
überlebt, ist, dass es Ihre ausdrückliche Verantwortung ist, sicherzustellen, dass der nächste Test eine saubere Umgebung findet: ein Test kann durch den Status eines vorherigen Tests unterbrochen werden.
Wenn Sie wirklich die Route langlebiger externe Dienste gehen möchten, lesen Sie über SetUpTestCase
und TearDownTestCase
im gtest advanced guide, die pro Testvorrichtung ermöglicht es, nur einmal den Dienst zu starten.
Es gibt eine noch gefährlichere Klasse Environment
, die eine globale Einrichtung und einen Abbau ermöglicht (Suche im erweiterten Handbuch).
Aber wieder sind Ihre Tests spröde und schwer zu debuggen. Ich schlage vor, den Ansatz zu überdenken.