Problembehandlung in der Test Edition

Aktualisiert: November 2007

Beim Testen von Code können unter bestimmten Bedingungen Fehler und Warnungen auftreten, oder der Test kann fehlschlagen. In diesem Thema werden einige dieser Bedingungen und Schritte zur Problembehandlung beschrieben.

Beheben von Problemen bei der Testausführung

Bedingungen, die das Ausführen von Tests verhindern, können in der Regel auf einen Fehler beim Bereitstellen der Testdatei oder anderer, zum Ausführen des Tests erforderlicher Dateien zurückgeführt werden.

  • Remotetests. Bei Remotetests können auch Kommunikationsprobleme mit dem Remotecomputer auftreten. Diese und andere Fehler auf der Test- und Ausführungsebene werden unter Beheben von Problemen bei der Testausführung beschrieben.

  • ASP.NET-Komponententests. Wenn der ASP.NET-Komponententest im IIS-Prozess ausgeführt wird, können Sie den ASP.NET-Prozess aus Sicherheitsgründen als Nicht-Standardbenutzer ausführen, d. h. mit einer anderen Prozessidentität. Die Testausführung kann in diesem Fall fehlschlagen. Weitere Informationen finden Sie unter Übersicht über ASP.NET-Komponententests.

  • Gemeinsames Bereitstellen von Dateien und Tests. Bereitstellungsfehler werden häufig auf der Seite Testlaufdetails und nicht auf der Seite Testergebnisdetails der einzelnen fehlgeschlagenen Tests angezeigt. Daher ist die Fehlerursache für einzelne Tests möglicherweise nicht offensichtlich. Weitere Informationen finden Sie im Abschnitt "Problembehandlung bei der Testbereitstellung" unter Übersicht über die Testbereitstellung.

  • Problembehandlung für Webtests. Beim Ausführen von Webtests können verschiedene Fehler auftreten. Mögliche Ursachen können fehlende Datenbindungsattribute, Probleme mit den Sicherheitseinstellungen oder Zugriffsversuche auf eine Website hinter der Firewall sein. Weitere Informationen finden Sie unter Problembehandlung für Webtests.

  • Problembehandlung für Auslastungstests. Beim Ausführen von Auslastungstests können verschiedene Fehler auftreten. Mögliche Ursachen können Probleme in der Auslastungstest-Datenbank, die im Auslastungstest festgelegten Indikatoren, ein nicht ordnungsgemäß konfiguriertes Rig oder einer der Tests im Auslastungstest sein. Weitere Informationen finden Sie unter Problembehandlung für Auslastungstests.

  • Problembehandlung für datengesteuerte Komponententests. Beim Ausführen von datengesteuerten Komponententests können u. a. Probleme mit der Verbindung, Authentifizierung und Bereitstellung auftreten. Verwenden Sie zum Beheben dieser Probleme die Informationen unter Problembehandlung für datengesteuerte Komponententests.

Erneutes Signieren von Assemblys mit starken Namen

Beim Ausführen von Komponententests wird Code in einer Binärdatei getestet. Wenn diese Tests durch Instrumentieren der Binärdatei ausgeführt werden, können Codeabdeckungsdaten gesammelt werden. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erfassen von Codeabdeckungsdaten. Bei der Instrumentierung wird Code hinzugefügt, mit dem in der Binärdatei Codeabdeckungsinformationen generiert werden.

Wenn die zu testende Binärdatei jedoch eine Assembly mit starkem Namen ist, wird die Signatur aufgrund der Codeänderung beim Instrumentieren ungültig. Visual Studio versucht daher automatisch, die Assembly nach der Instrumentierung sofort erneut zu signieren. Weitere Informationen zu Assemblys mit starken Namen finden Sie unter Assemblys mit starkem Namen.

Das erneute Signieren kann unter verschiedenen Bedingungen fehlschlagen. Informationen zum Vermeiden dieser Bedingungen finden Sie unter Instrumentieren und erneutes Signieren von Assemblys.

Codeabdeckungsdaten und VSPerfMon.exe

Wenn VSPerfMon.exe gleichzeitig mit Tests ausgeführt wird, für die Codeabdeckungsdaten erfasst werden, treten folgende Ereignisse auf:

  • Wenn VSPerfMon.exe mit der Option TRACE oder SAMPLE ausgeführt wird, schlägt der gleichzeitig ausgeführte Test fehl. Auf der Seite Testlaufdetails wird ein Fehler angezeigt.

  • Wenn VSPerfMon.exe mit der COVERAGE-Option ausgeführt wird, wird der Prozess VSPerfMon.exe beendet.

In beiden Fällen können Sie das Problem umgehen, indem Sie VSPerfMon.exe und Tests, für die Codeabdeckungsdaten erfasst werden, nicht gleichzeitig ausführen. Weitere Informationen zum Tool VSPerfMon.exe finden Sie unter VSPerfMon.

Wann könnte dies der Fall sein?

VSPerfMon.exe wird in der Regel in folgenden Situationen ausgeführt:

  • Eine Profilerstellungssitzung wurde gestartet, möglicherweise in einer anderen Visual Studio-Instanz als derjenigen, in der die Tests ausgeführt werden.

  • Codeabdeckungs- oder Profilerstellungsdaten werden durch direktes Ausführen von VSPerfMon.exe oder mithilfe des Wrappers VSPerfCmd.exe erfasst. Letzteres ist häufiger der Fall.

Codeabdeckungsdaten werden nicht ordnungsgemäß angezeigt

Wenn Sie für die Tests das Erfassen von Codeabdeckungsdaten festgelegt haben, die Daten jedoch nicht oder anders als erwartet angezeigt werden, kann eine der hier beschriebenen Situationen zutreffen:

  • Codeabdeckungsdaten werden nicht angezeigt. Beim Ausführen des Tests werden bestimmte Binärdateien, z. B. COM-DLLs, vom ursprünglichen Speicherort und nicht aus dem Testbereitstellungsverzeichnis geladen. Diese Binärdateien müssen direkt instrumentiert werden. Andernfalls werden keine Codeabdeckungsdaten erfasst, obwohl der Test erfolgreich ausgeführt und keine Warnung auf Ausführungsebene generiert wird. Weitere Informationen finden Sie unter Auswählen des Instrumentationsordners.

  • Codeabdeckung wird nicht hervorgehoben. Wenn Sie Tests ausführen, Codeabdeckungsdaten erfassen und anschließend Testergebnisse anzeigen, wird der während des Testlaufs getestete Code von Visual Studio in der Quellcodedatei hervorgehoben angezeigt. Sie können die Farben auswählen, mit denen abgedeckter, nicht abgedeckter und teilweise abgedeckter Code hervorgehoben wird. Wenn einer oder mehrere dieser Codeabschnitte nicht hervorgehoben werden, stellen Sie sicher, dass sich die ausgewählten Farben von der Hintergrundfarbe der Quellcodedatei unterscheiden. Weitere Informationen zum Auswählen der Farben zum Hervorheben finden Sie im Abschnitt "Ändern der Anzeige der Codeabdeckungsdaten" unter Gewusst wie: Erfassen von Codeabdeckungsdaten.

  • **Codeabdeckungsdaten werden nicht ordnungsgemäß zusammengeführt.**Sie können Ergebnisse zusammenführen, in denen ein oder mehrere ASP.NET-Testläufe enthalten sind. ASP.NET-Daten werden jedoch im Fenster Codeabdeckungsergebnisse unter Zusammengeführte Ergebnisse als separate Knoten und nicht in einem einzelnen, zusammengeführten Knoten angezeigt. Weitere Informationen finden Sie unter Arbeiten mit zusammengeführten Codeabdeckungsdaten.

  • Zusammengeführte Codeabdeckungsdaten werden nicht vollständig angezeigt. Nach dem Zusammenführen von Codeabdeckungsdaten können Sie diese als XML-Datei auf einen Datenträger exportieren. Wenn Sie diese Datei erneut importieren und dann mit weiteren Daten zusammenführen, werden nicht alle Statistiken angezeigt. Weitere Informationen finden Sie unter Arbeiten mit zusammengeführten Codeabdeckungsdaten.

  • Codeabdeckungsdaten können nicht importiert werden. Zum Importieren von Codeabdeckungsdaten muss Visual Studio bestimmte Dateien auf dem Datenträger finden können. Weitere Informationen finden Sie unter Arbeiten mit zusammengeführten Codeabdeckungsdaten.

  • Instrumentierte Binärdateien werden überschrieben. Für ein Programm, das während eines manuellen Tests ausgeführt wird, sollen Codeabdeckungdaten erfasst werden. Wenn Sie zum Starten dieses Programms STRG+F5 verwenden, wird durch diese Tastenkombination die Binärdatei des Programms neu erstellt. Da die instrumentierte Binärdatei hierdurch überschrieben wird, können keine Codeabdeckungsdaten erfasst werden.

Allgemeine Informationen zum Erfassen von Codeabdeckungsdaten finden Sie unter Gewusst wie: Erfassen von Codeabdeckungsdaten.

Leistungsprobleme beim Hinzufügen von Testmethoden

Wenn Sie eine neue Testmethode hinzufügen, wird die Hintergrundverarbeitung durchgeführt, um diese Testmethode im Fenster Testansicht und im Testlisten-Editor hinzuzufügen. Deshalb können Sie sie sofort sehen. Im Falle von vielen Testmethoden in einer einzigen Testklasse oder im gesamten Projekt kann es beim Hinzufügen einer neuen Testmethode zu dieser Testklasse zu einem Leistungsproblem kommen, das auf diese automatische Verarbeitung zurückzuführen ist.

Sollte dieses Leistungsproblem auftreten, gibt es drei mögliche Lösungen:

  • Sie können die Testklasse in partielle Klassen aufteilen und die Testmethoden auf diese partiellen Klassen verteilen. So wird die Anzahl der Methoden in einer einzigen Testklasse reduziert und die Leistung beim Hinzufügen einer neuen Testmethode verbessert.

  • Sie können ein neues Testprojekt erstellen, einige der Testklassen in dieses neue Testprojekt verschieben und sie dann aus dem ursprünglichen Testprojekt entfernen. Dies reduziert die Anzahl von Testmethoden in einer Assembly und verbessert die Leistung.

  • Es steht Ihnen frei zur Auswahl, ob Sie die Hintergrundverarbeitung aktivieren oder deaktivieren möchten, mit der Testmethoden im Fenster Testansicht und im Testlisten-Editor hinzugefügt werden. Dies verbessert die Leistung, wenn eine Testmethode hinzugefügt wird. Wenn jedoch diese Option festgelegt wird, wird die Testmethode so lange nicht im Fenster Testansicht oder im Testlisten-Editor angezeigt, bis Sie die Klasse, die die Testmethode enthält, kompilieren und im Fenster Testansicht oder im Testlisten-Editor auf Aktualisieren klicken.

    Hinweis:

    Wenn diese Option festgelegt wird, werden die neuen Testmethoden zur Kompilierzeit ermittelt. Dies erhöht die für die Kompilierung der Projektmappe benötigte Gesamtzeit.

So deaktivieren Sie die automatische Suche nach Testmethoden

  1. Klicken Sie im Menü Extras auf Optionen.

    Das Dialogfeld Optionen wird angezeigt.

  2. Erweitern Sie Testtools im linken Bereich, und klicken Sie dann auf Testprojekt.

  3. Um die automatische Suche nach Testmethoden zu deaktivieren, wählen Sie Ermittlung von Testmethoden im Hintergrund deaktivieren aus.

    Hinweis:

    Wenn diese Option festgelegt ist, wird die von Ihnen einer Testklasse hinzugefügte Testmethode jedoch so lange nicht im Fenster Testansicht oder im Testlisten-Editor angezeigt, bis Sie die Klasse, die die Testmethode enthält, kompilieren.

Siehe auch

Aufgaben

Gewusst wie: Zusammenführen von Codeabdeckungsdaten

Problembehandlung für Webtests

Problembehandlung für Auslastungstests

Konzepte

Übersicht über die Testbereitstellung

Arbeiten mit zusammengeführten Codeabdeckungsdaten

Problembehandlung für datengesteuerte Komponententests

Übersicht über ASP.NET-Komponententests