Debuggen von TAEF-Tests
Debuggerkonfiguration
Standardmäßig werden Testfälle in einem separaten Prozess als TE.exe ausgeführt: TE.ProcessHost.exe.
Debuggen untergeordneter Prozesse von TE.exe (nur windbg/cdb)
Wenn Sie einen Debugger wie cdb oder windbg verwenden, können Sie einfach den Schalter "-o" an den Debugger übergeben. Dadurch wird der Debugger so konfiguriert, dass untergeordnete Prozesse automatisch in demselben Debugger instance.
Beispiel:
windbg -o te.exe MyTests.dll
Um dann zu dem Prozess zu wechseln, in dem Ihre Tests ausgeführt werden, verwenden Sie die | (pipe)-Befehl. Der Pipe-Befehl zum Umschalten von Prozessen wird exaclty als ~-Befehl (tilda) zum Umschalten von Threads verwendet.
Beispiel:
|1s - sets the current process to the second loaded process.
Ausführen von Tests "InProc" (Visual Studio/windbg/cdb)
Wenn Sie zum Debuggen lieber Visual Studio verwenden möchten, funktioniert die obige Methode nicht für Sie. Konfigurieren Sie in diesem Fall einfach Ihren Debugger so, dass TE.exe ausgeführt wird, legen Sie die entsprechenden Haltepunkte für den Testfall fest, und übergeben Sie den Schalter /inproc an TE.exe. Dadurch wird sichergestellt, dass alle Tests innerhalb des TE.exe-Prozesses ausgeführt werden, anstatt einen neuen Prozess zu erzeugen.
Beispiel:
start devenv /debugexe te.exe MyTests.dll /inproc
Mit dem obigen Befehl wird Visual Studio gestartet. Öffnen Sie als Nächstes den Quellcode für Ihre Testfälle, und legen Sie die entsprechenden Haltepunkte fest. Klicken Sie schließlich auf F5, um Ihren Testfall zu starten, und er sollte am ersten Haltepunkt unterbrochen werden (wenn Ihre Symbole ordnungsgemäß geladen wurden).
Die oben beschriebenen Schritte funktionieren nur mit korrekten Symbolen, die in Visual Studio festgelegt sind. Zumindest müssen Sie die Symbole auf die Test-DLL festlegen, die Sie debuggen. So legen Sie Symbole in Visual Studio fest:
- Menü "Extras" auswählen
- Wählen Sie Optionen aus...
- Wählen Sie debuggen im linken Menü mit Strukturansicht aus.
- Wählen Sie unter Debuggen Symbole aus.
- Geben Sie den Symbolpfad unter Dem Speicherort der Symboldatei (*.pdb) ein: Abschnitt
- Speichern Ihrer Einstellungen
Automatisches Durchbrechen in den Debugger ("breakOnCreate" und "breakOnInvoke")
Um den Debugprozess zu vereinfachen, bietet Taef die Möglichkeit, automatisch in den Debugger einzubrechen, bevor jede Testklasse instanziiert wird und/oder bevor jede Testmethode aufgerufen wird.
Beispiel:
cdb -gG te.exe MyTests.dll /inproc /breakOnCreate /breakOnInvoke
Mit dem obigen Befehl wird Te.exe unter cdb gestartet. Taef wird direkt vor dem Instanziieren jeder Testklasse und vor dem Aufrufen der einzelnen Testmethoden in den Debugger eingebrochen.
Hinweis: Es wird empfohlen, dieses Feature zu verwenden, während Sie Te.exe unter einem Debugger ausführen und auch die Option /inProc angeben.