2016-05-25 4 views
0

Momentan verwende ich Visual Studio Team Services mit einem privaten Code-Repository, das mein Projekt enthält. Ich habe ein Continuous Integration Set-up, das neuen Code schnappt, ihn erstellt, Unit-Tests ausführt und dann alles auf einer Azure-Website veröffentlicht. Funktioniert super.Visual Studio Team Services - Einstellungen für das Testen von Einheiten öffentlichen Repo

Jetzt ist die Zeit reif, Open Source mit dem Code zu gehen. Ich möchte alles auf GitHub verschieben, aber die VS Team Services zum Erstellen, Testen und Bereitstellen weiterhin verwenden. Ich habe Sachen aufgeräumt, die ich nicht im öffentlichen Repo haben möchte (Appsettings, Verbindungszeichenfolge). Für die Webanwendung selbst ist es ziemlich einfach, all die "privaten" Dinge, die ich in das Azure-Portal verschoben und aus der web.config entfernt habe. Einstellungen werden automatisch überschrieben und ich kann eine web.config einchecken, die keine sensiblen Daten enthält.

Aber dann kam ich zu meinem Unit-Test-Projekt. Hmmm, was nun? Ich möchte meine Einstellungsdatei nicht so einchecken, wie sie jetzt ist, aber die Tests basieren auf diesen Einstellungen. Was ist also eine gute Übung, um sicherzustellen, dass die Tests ausgeführt werden können, ohne dass meine Einstellungen in einem öffentlichen Repository angezeigt werden?

Entschuldigung im Voraus, da diese Frage wahrscheinlich bereits beantwortet wurde, aber ich konnte alles finden, was dieses spezielle Problem wirklich beschreibt.

Antwort

0

Sie können in einer Datei web.config ohne sensible Daten einchecken und dann Replace Tokens Task verwenden, um die Datei web.config mit gültigen Informationen während des Builds zu füllen. Die Zeichenfolge, die zum Füllen der Datei "web.config" verwendet wird, wird in den Builddefinitionsvariablen gespeichert, sodass sie für öffentliche Personen nicht verfügbar ist.

+0

Das scheint wirklich gut zu funktionieren, danke Eddie! – Jasper

+0

Hey @Eddie - MSFT, ich hätte das früher realisieren sollen, aber ohne die richtigen Tokens in meiner Konfiguration, natürlich kann ich keine Tests mehr lokal ausführen. Gibt es eine ähnliche Möglichkeit, die Tokens für lokale Tests zu ersetzen, ohne dass irgendetwas eingecheckt werden muss? – Jasper

+0

@Jasper Sie können die Umwandlung web.config verwenden: https://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx. –

Verwandte Themen