2017-03-13 4 views
1

Für unsere datengesteuerten Tests verwenden wir Excel-Dateien für die Datenquelle. Jetzt, da die Excel-Dateien binäre Daten sind, hatten wir eine Menge Probleme mit git (nicht in der Lage zu diff, Dateien überschrieben und implizit viele falsche positive Ergebnisse aufgrund von falschen Testdaten, die tatsächlich mehrere Male geändert wurde).So führen Sie Code aus, bevor MSTest TestContext festgelegt wird

Also, um dies zu überwinden, dachte ich, dass wir Google Drive verwenden können, um die Datenquelle zu speichern und jedes Mal die Excel-Datei herunterzuladen, die verwendet wird.

Das Problem ist jetzt, dass TestContext in AssemblyInitialize eingestellt ist, bevor ich die Datenquelle von Google Drive herunterladen und daher nicht finden kann.

Gibt es eine Möglichkeit, den Download der Datenquelle in derselben Baugruppe wie die Tests zu bestimmen? Ich weiß, dass ich eine neue Lösung erstellen könnte, um es als Build-Aufgabe vor dem Ausführen der Test-Assembly zu setzen, aber ich suche nach etwas für ordentlich, wenn möglich.

EDIT: Ich versuchte es mit der Option, ein neues Konsolenanwendungsprojekt zu erstellen, das als Build-Task ausgeführt wird und die Excel-Datei vor dem Ausführen der Tests herunterladen.

Es scheint jedoch, dass, da die Excel-Datei wurde nicht hinzugefügt, um die Lösung wird nicht durch die Datasource Attribut abgeholt.

+0

Wie wäre es mit ClassInitialize, sonst klingt ein Build-Step nach einer guten Option für mich. http://stackoverflow.com/questions/25406335/whats-the-life-cycle-of-unit-tests-in-c-sharp je nachdem, wie oft die Daten ändern - vielleicht können Sie es verdrahten ... aber das kann natürlich zu Schmerzen in der Wartung führen ... – Jocke

Antwort

0

Die einzige Möglichkeit, dies zu erreichen, war das Erstellen eines neuen Konsolenanwendungsprojekts, das dem datengetriebenen Testprojekt als vorbereitende Aufgabe hinzugefügt wurde.

Zumindest war dies der erste Ansatz, da unsere Lösung dadurch zusätzliche 1-2 Minuten benötigte (abhängig vom Netzwerkverkehr).

Also ich beendete die Erstellung einer neuen Build-Aufgabe im Build-System, das damit umgehen wird.

Verwandte Themen