Schreiben von Komponententests für C++-DLLs in Visual Studio
Artikel
Es gibt einige Möglichkeiten, um DLL-Code zu testen, je nachdem, ob dieser die Funktionen exportiert, die Sie testen möchten. Wählen Sie eine der folgenden Methoden aus:
Die Komponententests rufen nur Funktionen auf, die von der DLL exportiert werden: Fügen Sie wie unter Schreiben von Komponententests für C/C++ beschrieben ein separates Testprojekt hinzu. Fügen Sie im Testprojekt einen Verweis auf das DLL-Projekt hinzu.
Die Komponententests rufen Nicht-Member-Funktionen auf, die nicht von der DLL exportiert werden, und die DLL kann als statische Bibliothek erstellt werden: Ändern Sie das DLL-Projekt so, dass es in eine LIB-Datei kompiliert wird. Fügen Sie ein separates Testprojekt hinzu, das auf das zu testende Projekt verweist.
Diese Methode hat den Vorteil, dass Ihre Tests nicht exportierte Members verwenden, aber dennoch in einem separaten Projekt verbleiben können.
Die Komponententests müssen nicht exportierte Nicht-Member-Funktionen aufrufen, und der Code muss als DLL (Dynamic Link Library) erstellt werden: Fügen Sie Komponententests im gleichen Projekt wie den Produktcode hinzu.
Wenn die Tests Members verwenden müssen, die nicht von einem DLL-Projekt exportiert werden, und das zu testende Projekt als dynamische Bibliothek erstellt wird, erwägen Sie, es in eine statische Bibliothek zu konvertieren.
Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das zu testende Projekt, und klicken Sie auf Eigenschaften. Das Projektfenster Eigenschaften wird geöffnet.
Klicken Sie auf Konfigurationseigenschaften>Allgemein.
Legen Sie den Konfigurationstyp auf Statische Bibliothek (.lib) fest.
So verweisen Sie auf exportierte DLL-Funktionen aus dem Testprojekt
Wenn das DLL-Projekt die Funktionen exportiert, die Sie testen möchten, können Sie aus dem Testprojekt einen Verweis auf das Codeprojekt hinzufügen.
Erstellen Sie ein natives Komponententestprojekt.
Wählen Sie im Menü Datei die Optionsfolge Neu>Projektaus. Legen Sie im Dialogfeld Neues Projekt hinzufügenSprache auf C++ fest, und geben Sie „test“ in das Suchfeld ein. Wählen Sie dann die Vorlage Natives Komponententestprojekt aus.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Testprojekt, und wählen Sie anschließend Hinzufügen>Verweis aus.
Wählen Sie Projekte und dann das zu testende Projekt aus.
Wählen Sie die Schaltfläche Hinzufügen aus.
Fügen Sie in den Eigenschaften des Testprojekts den Speicherort des zu testenden Projekts den Includeverzeichnissen hinzu.
Klicken Sie auf Konfigurationseigenschaften>VC++-Verzeichnisse>Includeverzeichnisse.
Wählen Sie Bearbeiten aus, und fügen Sie dann das Headerverzeichnis des zu testenden Projekts hinzu.
So verknüpfen Sie die Tests mit den Objekt- oder Bibliotheksdateien
Wenn die DLL die Funktionen, die Sie testen möchten, nicht exportiert, können Sie die OBJ- oder LIB-Ausgabedatei zu den Abhängigkeiten des Testprojekts hinzufügen.
Erstellen Sie ein natives Komponententestprojekt.
Wählen Sie im Menü Datei die Optionsfolge Neu>Projektaus. Legen Sie im Dialogfeld Neues Projekt hinzufügenSprache auf C++ fest, und geben Sie „test“ in das Suchfeld ein. Wählen Sie dann die Vorlage Natives Komponententestprojekt aus.
Öffnen Sie im Projektmappen-Explorer das Kontextmenü des Testprojekts, und klicken Sie auf Eigenschaften.
Klicken Sie auf Konfigurationseigenschaften>Linker>Eingabe>Zusätzliche Abhängigkeiten.
Wählen Sie Bearbeiten aus, und fügen Sie dann die Namen der .obj- oder .lib-Dateien hinzu. Verwenden Sie nicht die vollständigen Pfadnamen.
Klicken Sie auf Konfigurationseigenschaften>Linker>Allgemein>Zusätzliche Bibliotheksverzeichnisse.
Wählen Sie Bearbeiten aus, und fügen Sie den Verzeichnispfad der .obj- oder .lib-Dateien hinzu. Der Pfad befindet sich normalerweise im Buildordner des zu testenden Projekts.
Klicken Sie auf Konfigurationseigenschaften>VC++-Verzeichnisse>Includeverzeichnisse.
Wählen Sie Bearbeiten aus, und fügen Sie dann das Headerverzeichnis des zu testenden Projekts hinzu.
So fügen Sie Komponententests im gleichen Projekt hinzu
Ändern Sie die Produktcodeprojekteigenschaften, um die Header und Bibliotheksdateien einzuschließen, die für die Unittests erforderlich sind.
Klicken Sie im Projektmappen-Explorer im Kontextmenü für das zu testende Projekt auf Eigenschaften. Das Projektfenster Eigenschaften wird geöffnet.
Klicken Sie auf Konfigurationseigenschaften>VC++-Verzeichnisse.
Bearbeiten Sie die Include- und Bibliotheksverzeichnisse:
Verzeichnis
Eigenschaft
Includeverzeichnisse
$(VCInstallDir)Auxiliary\VS\UnitTest\include
Bibliotheksverzeichnisse
$(VCInstallDir)Auxiliary\VS\UnitTest\lib
Fügen Sie eine C++-Komponententestdatei hinzu:
Klicken Sie erst mit der rechten Maustaste auf den Projektknoten im Projektmappen-Explorer, und wählen Sie Hinzufügen>Neues Element aus.
Wählen Sie im Dialogfeld Neues Element hinzufügen die Option C++-Datei (.cpp) aus, geben Sie dieser einen geeigneten Namen, und klicken Sie auf Hinzufügen.
Klicken Sie im Menü Test auf Windows>Test-Explorer.
Wenn nicht alle Ihre Tests im Fenster angezeigt werden, erstellen Sie das Testprojekt: Klicken Sie mit der rechten Maustaste auf dessen Knoten im Projektmappen-Explorer, anschließend auf Erstellen oder Neu erstellen.
Klicken Sie im Test-Explorer auf Alle ausführen, oder wählen Sie die Tests aus, die Sie ausführen möchten. Klicken Sie für weitere Optionen mit der rechten Maustaste auf einen Test, um beispielsweise den Test im Debugmodus mit aktivierten Breakpoints auszuführen.
Beginnen Sie mit dem Testen Ihrer C#-Apps mithilfe der Testtools in Visual Studio. Hier erfahren Sie, wie Sie Tests schreiben, den Test-Explorer verwenden, Testsammlungen erstellen und das Rot-Grün-Refactoringmuster anwenden, um Code zu schreiben.