Auf Englisch lesen

Freigeben über


Schreiben von Komponententests für C++-DLLs in Visual Studio

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.

Rufen Sie die Prozedur Verweisen auf exportierte Funktionen aus dem DLL-Projekt auf.

Die DLL wird als EXE-Datei erstellt: Fügen Sie ein separates Testprojekt hinzu. Verknüpfen Sie sie mit der Ausgabeobjektdatei.

Rufen Sie die Prozedur So verknüpfen Sie die Tests mit dem Objekt- oder Bibliotheksdateien.

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.

Rufen Sie die Prozedur To change the DLL to a static library (Ändern der DLL in eine statische Bibliothek) auf.

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.

Wechseln Sie zum Verfahren So fügen Sie Komponententests im gleichen Projekt hinzu.

Erstellen der Tests

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

    1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das zu testende Projekt, und klicken Sie auf Eigenschaften. Das Projektfenster Eigenschaften wird geöffnet.

    2. Klicken Sie auf Konfigurationseigenschaften>Allgemein.

    3. Legen Sie den Konfigurationstyp auf Statische Bibliothek (.lib) fest.

    Fahren Sie mit der Prozedur So verknüpfen Sie die Tests mit den Objekt- oder Bibliotheksdateien fort.

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.

    1. Erstellen Sie ein natives Komponententestprojekt.

      1. 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.
    2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Testprojekt, und wählen Sie anschließend Hinzufügen>Verweis aus.

    3. Wählen Sie Projekte und dann das zu testende Projekt aus.

      Wählen Sie die Schaltfläche Hinzufügen aus.

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

    Wechseln Sie zu Schreiben der Komponententests.

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.

    1. Erstellen Sie ein natives Komponententestprojekt.

      1. 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.
    2. Öffnen Sie im Projektmappen-Explorer das Kontextmenü des Testprojekts, und klicken Sie auf Eigenschaften.

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

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

    5. Klicken Sie auf Konfigurationseigenschaften>VC++-Verzeichnisse>Includeverzeichnisse.

      Wählen Sie Bearbeiten aus, und fügen Sie dann das Headerverzeichnis des zu testenden Projekts hinzu.

    Wechseln Sie zu Schreiben der Komponententests.

So fügen Sie Komponententests im gleichen Projekt hinzu

  1. Ändern Sie die Produktcodeprojekteigenschaften, um die Header und Bibliotheksdateien einzuschließen, die für die Unittests erforderlich sind.

    1. Klicken Sie im Projektmappen-Explorer im Kontextmenü für das zu testende Projekt auf Eigenschaften. Das Projektfenster Eigenschaften wird geöffnet.

    2. Klicken Sie auf Konfigurationseigenschaften>VC++-Verzeichnisse.

    3. Bearbeiten Sie die Include- und Bibliotheksverzeichnisse:

      Verzeichnis Eigenschaft
      Includeverzeichnisse $(VCInstallDir)Auxiliary\VS\UnitTest\include
      Bibliotheksverzeichnisse $(VCInstallDir)Auxiliary\VS\UnitTest\lib
  2. Fügen Sie eine C++-Komponententestdatei hinzu:

    1. Klicken Sie erst mit der rechten Maustaste auf den Projektknoten im Projektmappen-Explorer, und wählen Sie Hinzufügen>Neues Element aus.

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

    Wechseln Sie zu Schreiben der Komponententests.

Schreiben der Komponententests

  1. Fügen Sie in jeder Komponententestcodedatei eine #include-Anweisung für die Header des zu testenden Projekts hinzu.

  2. Fügen Sie den Komponententestcodedateien Testklassen und -methoden hinzu. Zum Beispiel:

    C++
    #include "stdafx.h"
    #include "CppUnitTest.h"
    #include "MyProjectUnderTest.h"
    using namespace Microsoft::VisualStudio::CppUnitTestFramework;
    namespace MyTest
    {
      TEST_CLASS(MyTests)
      {
      public:
          TEST_METHOD(MyTestMethod)
          {
              Assert::AreEqual(MyProject::Multiply(2,3), 6);
          }
      };
    }
    

Tests ausführen

  1. Klicken Sie im Menü Test auf Windows>Test-Explorer.

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

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