2009-08-26 16 views
0

Für verschiedene C++ - Bibliotheksprojekte in VS2008 habe ich ein Schwesterprojekt namens <libraryname>-Test. Dies ist ein ausführbares Projekt, das von der Bibliothek abhängt und Tests ausführt. Die Post-Build-Konfiguration des Testprojekt besteht aus einfach:Wie erzwingen VS2008 C++ Post-Build-Ereignisse zur Ausführung?

"$ (TargetPath)"

Visual Studio wird die Post-Build-Schritt nicht erneut ausführen, es sei denn es tut wirklich etwas während der Build, ein Re-Link zumindest. Normalerweise ist das eine gute Sache, aber in diesem Fall möchte ich, dass die Tests jedes Mal erneut ausgeführt werden, wenn der Lösungsaufbau ausgelöst wird (im Gegensatz zu Projekt-Builds, die nur die abhängigen Projekte aufbauen, die für das reale Programm benötigt werden).

Bisher habe ich die einzige Möglichkeit gefunden, dass die Tests jedes Mal ausgeführt werden, wenn eine der Zwischendateien als Teil des Post-Build-Prozesses gelöscht wird. Das funktioniert, verlangsamt aber die Dinge, da die Testprojekte dann neu erstellt werden müssen, auch wenn sich nichts geändert hat.

Antwort

1

Setzen Sie den Testlauf in den Post-Build-Schritt Ihres Hauptprojekts und nicht in das Testprojekt. Da es sowieso neu aufgebaut wird, wird der Test immer ausgeführt.

+0

Ich möchte nicht die Tests auf * jeden * Build des Programms erneut ausführen, ich möchte nur in der Lage sein, sie auf Abruf auszuführen. Idealerweise durch einen Lösungs-Build, denn das macht die CI-Build-Maschine regelmäßig. Aus diesem Grund habe ich in der Frage gezielt Projekt-Builds von Lösungs-Builds unterschieden. –

+0

Dann legen Sie das Post-Build-Ereignis nur für Release-Builds Ihres Projekts fest. Verwenden Sie Release-Builds für Ihre endgültigen Projekte, die ausgeliefert werden/getestet werden müssen. Entwickeln Sie dann mit dem Debug-Build. –

0

verwenden Sie einen CI-Server wie CruiseControl oder Hudson? Sie können solche Dinge normalerweise in ihnen schreiben. Oder benutze einfach Nant sogar. Sie alle unterstützen Postbuildereignisse.

+0

Nein, das CI-System besteht aus selbst erstellten Batch-Dateien und ... Zeug. Die Tests laufen auf der CI-Maschine trotzdem gut, auf Entwicklermaschinen verursacht das aktuelle System Beschwerden. –

Verwandte Themen