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.
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. –
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. –