172 Stimmen

Kann ein Unit-Test-Projekt die app.config-Datei der Zielanwendung laden?

Ich teste eine .NET-Anwendung (.exe), die eine app.config-Datei zum Laden von Konfigurationseigenschaften verwendet. Die Unit-Test-Anwendung selbst verfügt nicht über eine app.config-Datei.

Wenn ich versuche, eine Methode zu testen, die eine der Konfigurationseigenschaften verwendet, geben sie null . Ich nehme an, dass dies daran liegt, dass die Unit-Test-Anwendung nicht in die app.config der Zielanwendung geladen wird.

Gibt es eine Möglichkeit, dies zu überschreiben oder muss ich ein Skript schreiben, um den Inhalt der Ziel app.config in eine lokale app.config zu kopieren?

Diese Beitrag stellt diese Frage, aber der Autor betrachtet sie aus einem anderen Blickwinkel als ich.

EDIT: Ich sollte erwähnen, dass ich VS08 Team System für meine Unit-Tests verwende.

-1voto

Ben Punkte 924

Ihre Unit-Tests werden als eine Umgebung betrachtet, in der Ihr Code ausgeführt wird, um ihn zu testen. Wie bei jeder normalen Umgebung gibt es z.B. Staging/Production. Möglicherweise müssen Sie eine .config Datei auch für Ihr Testprojekt. Ein Workaround besteht darin, eine Klassenbibliothek zu erstellen und diese in ein Testprojekt zu konvertieren, indem man die notwendigen NuGet-Pakete wie NUnit und NUnit Adapter hinzufügt. Das funktioniert sowohl mit Visual Studio Test Runner als auch mit Resharper einwandfrei und Sie haben Ihre app.config Datei in Ihrem Testprojekt. enter image description here

enter image description here

enter image description here

enter image description here

Und schließlich debuggte ich meinen Test und den Wert von App.config :

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X