Freigeben über


Problembehandlung für generische Tests

Wenn Sie generische Tests ausführen, wird möglicherweise die Fehlermeldung angezeigt, dass Codeabdeckungsdaten nicht erfasst werden können, wenn ein generischer Test auf einer 64-Bit-Plattform ausgeführt wird. Beheben Sie diesen Fehler mithilfe der Informationen aus dem folgenden Abschnitt Umgehen der 32-Bit-Einschränkung.

Umgehen der 32-Bit-Einschränkung

Die Codeabdeckungsinstrumentation funktioniert nur im 32-Bit-Modus, jedoch nicht im 64-Bit-Modus. Der Grund hierfür ist, dass eine Assembly nur im 32-Modus geladen werden kann, nachdem sie für die Codeabdeckung instrumentiert wurde.

Hinweis

Diese Einschränkung gilt nicht, wenn Sie auf einem 64-Bit-Computer Komponententests ausführen, ohne Codeabdeckungsdaten zu erfassen. Der Grund hierfür ist, dass das Testmodul VSTestHost.exe, das die Klassenbibliothek lädt, in einem 32-Bit-Prozess ausgeführt wird.

Bei einem generischen Test wird die eingebundene Anwendung für die Zielplattformsoption "Any CPU" erstellt. Auf einem 64-Bit-Computer ist dies ein 64-Bit-Prozess. Wenn dieser 64-Bit-Prozess versucht, eine 32-Bit-Assembly zu laden, tritt ein Fehler auf. Mit einer der folgenden Möglichkeiten können Sie dieses Problem beheben.

Verwenden Sie folgende Methode, wenn der generische Test die Binärdatei, in die der Produktionscode kompiliert wurde, direkt einbindet:

  • Ändern der Projektmappenkonfiguration in x86

Verwenden Sie eine der folgenden zwei Methoden, wenn der generische Test und die Binärdatei mit dem Produktionscode durch eine Ebene getrennt sind. Das heißt, der generische Test schließt eine Vermittleranwendung als Testumgebung in einen Wrapper ein. In dieser Testumgebung wird dann der zu testende Produktionscode ausgeführt.

  • Instrumentieren der Anwendung, die die Binärdatei mit dem Produktionscode lädt

  • Ändern der Buildeinstellungen der Anwendung, die die Binärdatei mit dem Produktionscode lädt

Ändern der Projektmappenkonfiguration in x86

Ändern Sie die Projektmappenkonfiguration von "Any CPU" in "x86".

So ändern Sie die Projektmappenkonfiguration

  1. Klicken Sie mit der rechten Maustaste auf die Projektmappe, und klicken Sie dann auf Eigenschaften.

    Das Dialogfeld Eigenschaftenseiten für Projektmappen wird angezeigt.

  2. Klicken Sie unter Konfigurationseigenschaften auf Konfiguration.

  3. Klicken Sie auf Konfigurations-Manager.

    Das Dialogfeld Konfigurations-Manager wird angezeigt.

  4. Klicken Sie unter Aktive Projektmappenplattform auf Neu.

    Das Dialogfeld Neue Projektmappenplattform wird angezeigt.

  5. Klicken Sie unter Neue Plattform eingeben oder auswählen auf x86.

  6. Klicken Sie im Dialogfeld Neue Projektmappenplattform auf OK.

  7. Wenn im Dialogfeld die Aufforderung angezeigt wird, das Speichern der Änderungen zu bestätigen, klicken Sie auf Ja.

  8. Vergewissern Sie sich, dass im Dialogfeld Konfigurations-Manager unter Aktive Projektmappenplattform die Option x86 ausgewählt ist, und klicken Sie dann auf Schließen.

  9. Klicken Sie im Dialogfeld Eigenschaftenseiten für Projektmappen auf OK.

Instrumentieren der Anwendung, die die Binärdatei mit dem Produktionscode lädt

Mit diesem Vorgang können Sie eine Vermittleranwendung oder eine Testumgebung instrumentieren, die vom generischen Test eingebunden wird. Diese Vermittleranwendung führt den zu testenden Code aus. Dies erzwingt die Ausführung dieser Anwendung im 32-Bit-Modus.

Hinweis

Dieser Vorgang funktioniert nur, wenn die Symboldatei für die zu instrumentierende Datei verfügbar ist.

So geben Sie die ausführbare Datei für die Instrumentierung an

  1. Öffnen Sie in Visual Studio das Testprojekt, das den generischen Test enthält.

  2. Öffnen Sie im Projektmappen-Explorer den Ordner Projektmappenelemente.

  3. Doppelklicken Sie im Ordner Projektmappenelemente auf die Datei .testrunconfig.

  4. Das Dialogfeld Testlaufkonfiguration wird angezeigt.

  5. Klicken Sie auf Codeabdeckung.

  6. Mithilfe der Funktion Wählen Sie die zu instrumentierenden Artefakte aus können Sie die Vermittleranwendung auswählen, die die Binärdatei mit dem Produktionscode ausführt.

    Hinweis

    Wenn die Binärdatei der Vermittleranwendung nicht unter Wählen Sie die zu instrumentierenden Artefakte aus angezeigt wird, klicken Sie auf Assembly hinzufügen. Geben Sie im Dialogfeld Zu instrumentierende Assemblys auswählen die Datei an, und klicken Sie dann auf Öffnen.

  7. Klicken Sie auf Übernehmen und anschließend auf Schließen.

Ändern der Buildeinstellungen der Anwendung, die die Binärdatei mit dem Produktionscode lädt

Mit diesem Vorgang können Sie eine Vermittleranwendung oder Testumgebung instrumentieren, die vom generischen Test eingebunden wird. Diese Vermittleranwendung führt den zu testenden Code aus.

In diesem Vorgang ändern Sie die Einstellungen der Vermittleranwendung, um sie für die x68-Plattform zu konfigurieren.

Hinweis

Dies ist nur möglich, wenn die eingebundene Anwendung aus einem Projekt in der Projektmappe erstellt wurde.

So ändern Sie die Buildeinstellungen für die eingebundene Anwendung

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, aus dem die Vermittleranwendung erstellt wurde, und klicken Sie dann auf Eigenschaften.

    Es wird eine Eigenschaftenseite für das Projekt angezeigt.

  2. Klicken Sie auf die Registerkarte Erstellen.

  3. Geben Sie als Zielplattform x86 an.

  4. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern.

Siehe auch

Aufgaben

Gewusst wie: Erfassen von Codeabdeckungsdaten mit generischen Tests