Ausführen von Komponententests für vorhandene C++-Anwendungen mit dem Test-Explorer
Es wird empfohlen, dass, bevor Sie eine vorhandene Anwendung ändern, überprüfen Sie, ob es eine gute Codeabdeckung mit Komponententests verfügt.Dadurch haben Sie sicher, dass die Änderungen keine Fehler eingeführt haben.Wenn die Anwendung nicht bereits Komponententests verfügt, können Sie sie hinzufügen, indem Sie die Techniken verwenden, die in diesem Thema veranschaulicht werden.In diesem Thema wird beschrieben, wie Komponententests für vorhandenen Visual C++-Code in Microsoft Visual Studio 2012, beginnend mit dem Entscheiden hinzufügen, wie Sie den Code, und erstellen dann testet und und schließlich schreibt und die Tests ausführt.
Welche, wie den Code überprüft
Öffnen Sie das vorhandene C++-Projekt, und überprüfen Sie es, um zu entscheiden, wie Sie die Komponententests hinzufügen möchten.Sie sollten mehrere Modellierungstools verwenden, die Ihnen helfen, Abhängigkeiten im Code zu finden, und Sie können, zu verstehen, wie die Teile darzustellen.Weitere Informationen finden Sie unter Visualisieren und Verstehen von Code.
Es wird empfohlen, die Änderungen in kleine Aufgaben trennen.Vor jeder kleinen Änderung schreiben Sie Komponententests für Aspekte des Verhaltens, bei dem bleibt.Diese Tests werden weiterhin, um zu übergeben, nachdem Sie die Änderung vorgenommen haben.Wenn Sie beabsichtigen, eine Sortierfunktion zu ändern, damit sie eine Liste der Personen nach Nachnamen anstelle von des Vornamens sortiert, können Sie einen Komponententest schreiben, der überprüft, ob alle Eingabenamen in der Ausgabe angezeigt werden.Nachdem Sie die Änderung vorgenommen haben, sollten Sie neue Komponententests für das neue Verhalten hinzufügen.
Wenn es möglich ist, sollten viele oder alle die Komponententests nur Funktionen verwenden, die exportiert werden.jedoch, wenn Sie nur einen kleinen Teil der gesamten Anwendung ändern, dann können Sie Funktionen verwenden möchten, die nicht exportiert werden.Beispielsweise können Sie Tests, die interne Funktionen aufrufen, oder Tests, die festlegen und die Werte von internen Variablen abrufen.
Es gibt mehrere Möglichkeiten, Produktcode, abhängig von zu testen, ob die Schnittstellen verfügbar macht, die Sie testen möchten.Wählen Sie eine der folgenden Methoden aus:
- Die Komponententests verwenden nur Funktionen, die vom getesteten Code exportiert werden:
Fügen Sie ein separates Testprojekt hinzu.Fügen Sie im Testprojekt einen Verweis auf das Projekt getesteten hinzu.
Wechseln Sie zur Prozedur So erstellen Sie ein Testprojekt, das das Codeprojekt verweist.
Der getesteten Code wird als EXE-Datei erstellt:
Fügen Sie ein separates Testprojekt hinzu.Verknüpfen Sie ihn der Ausgabeobjektdatei.Wechseln Sie zur Prozedur So erstellen Sie ein Testprojekt, das die Codeobjektdatei verweist.
Die Komponententests müssen geschlossene private Funktionen und Daten verwenden, und der getesteten Code kann als statische Bibliothek erstellt werden:
Ändern Sie das Projekt in Versuch, damit er in einer LIB-Datei kompiliert wird.Fügen Sie ein separates Testprojekt hinzu, das das Projekt getesteten verweist.Dieser Ansatz hat den Vorteil Dadurch wird zugelassen der Tests auf private Member von verwenden, führt jedoch noch die Tests in einem separaten Projekt.Es ist jedoch möglicherweise nicht für mehrere Anwendungen geeignet, in denen Sie eine DLL-Datei (Dynamic Link Library) benötigen.
Wechseln Sie zur Prozedur Um den getesteten Code auf eine statische Bibliothek ändern.
Die Komponententests müssen geschlossene private Funktionen und Daten verwenden, und der Code muss als DLL (Dynamic Link Library) erstellt werden:
Fügen Sie Komponententests im gleichen Projekt wie der Produktcode hinzu.Wechseln Sie zur Prozedur So Komponententests im gleichen Projekt hinzufügen.
Erstellen der Tests
Um den getesteten Code auf eine statische Bibliothek ändern
Wenn die Tests Member verwenden müssen, die nicht von einem Projekt getesteten und das Projekt getesteten exportiert werden, erstellt wird als dynamische Bibliothek, sollten, sie auf eine statische Bibliothek zu konvertieren.
Wählen Sie im Projektmappen-Explorer, im Kontextmenü des Projekts getesteten, Eigenschaften aus.Das Projekteigenschaftenfenster wird geöffnet.
Wählen Sie Konfigurationseigenschaften, Allgemein aus.
Legen Sie Konfigurationstyp zu Statische Bibliothek (.lib) fest.
Fortfahren mit der Prozedur So fügen Sie ein Testprojekt für exportierte Funktionen erstellen fort.
So exportierte Funktionen aus dem Testprojekt verweisen
Wenn ein Projekt getesteten die exportierten Funktionen, die Sie testen möchten, dann können Sie einen Verweis auf das Codeprojekt aus dem Testprojekt hinzufügen.
Erstellen Sie Testprojekt in C++.
- Klicken Sie im Menü Datei wählen Sie Neu, Projekt, Visual C++,Test, C++-Komponententestprojekt aus.
Wählen Sie im Projektmappen-Explorer, im Kontextmenü des Testprojekts, Verweise aus.Das Projekteigenschaftenfenster wird geöffnet.
Wählen Sie Allgemeine Eigenschaften, Framework und Verweise aus, und wählen Sie dann die Schaltfläche Neuen Verweis hinzufügen aus.
Ausgewähltes Projekte und dann das Projekt getestet werden.
Wählen Sie die Schaltfläche Hinzufügen aus.
In den Eigenschaften für das Testprojekt, fügen Sie den Speicherort des Projekts in den Versuch Includeverzeichnissen hinzu.
Wählen Sie Konfigurationseigenschaften, VC++-Verzeichnisse, Includeverzeichnisse aus.
Wählen Sie Bearbeiten aus und fügen dann den Headerverzeichnis des Projekts getesteten hinzu.
Wechseln Sie zu Schreiben der Komponententests.
Um die Tests auf das Objekt oder die Bibliotheksdateien verknüpfen
Wenn der getesteten Code nicht die exportierten Funktionen, die Sie testen möchten, können Sie die Ausgabe .obj oder .lib Datei den Abhängigkeiten des Testprojekts hinzufügen.
Erstellen Sie Testprojekt in C++.
- Klicken Sie im Menü Datei wählen Sie Neu, Projekt, Visual C++,Test, C++-Komponententestprojekt aus.
Wählen Sie im Projektmappen-Explorer, im Kontextmenü des Testprojekts, Eigenschaften aus.Das Projekteigenschaftenfenster wird geöffnet.
Wählen Sie Konfigurationseigenschaften, Linker, Eingabe, Zusätzliche Abhängigkeiten aus.
Wählen Sie Bearbeiten aus und fügen Sie die Namen der .obj oder .lib Dateien hinzu.Verwenden Sie nicht die vollständigen Pfadnamen.
Wählen Sie Konfigurationseigenschaften, Linker, Allgemein, Zusätzliche Bibliotheksverzeichnisse aus.
Wählen Sie Bearbeiten aus und fügen Sie den Verzeichnispfad der .obj oder .lib Dateien hinzu.Der Pfad ist in der Regel innerhalb des Buildordners des Projekts getesteten.
Wählen Sie Konfigurationseigenschaften, VC++-Verzeichnisse, Includeverzeichnisse aus.
Wählen Sie Bearbeiten aus und fügen dann den Headerverzeichnis des Projekts getesteten hinzu.
Wechseln Sie zu Schreiben der Komponententests.
So Komponententests im gleichen Projekt hinzufügen
Ändern Sie die Produktcodeprojekteigenschaften, um die Header und die Bibliotheksdateien einzuschließen, die für Komponententests erforderlich sind.
Wählen Sie im Projektmappen-Explorer, im Kontextmenü des Projekts getesteten, Eigenschaften.Das Projekteigenschaftenfenster wird geöffnet.
Wählen Sie Konfigurationseigenschaften, VC++-Verzeichnisse aus.
Bearbeiten Sie die Einschliessungs- und Inhaltsverzeichnisse einer Bibliothek:
-Includeverzeichnisse
$(VCInstallDir)UnitTest\include;$(IncludePath)
Bibliotheksverzeichnisse
$(VCInstallDir)UnitTest\lib;$(LibraryPath)
Fügen Sie Komponententestdatei einer C++-Datei hinzu:
- Wählen Sie im Projektmappen-Explorer, im Kontextmenü des Projekts, Hinzufügen, Neues Element aus und wählen dann C++-Komponententest aus.
Wechseln Sie zu Schreiben der Komponententests.
Schreiben der Komponententests
In jeder Komponententestcodedatei fügen Sie eine #include-Anweisung für die Header des Projekts getesteten hinzu.
Fügen Sie Testklassen und Methoden den Komponententestcodedateien hinzu.Beispiel:
#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); } }; }
Weitere Informationen finden Sie unter Ausführen von Komponententests für systemeigenen Code mit dem Test-Explorer.
Führen Sie die Tests
Klicken Sie im Menü Ansicht wählen Sie Weitere Fenster, Test-Explorer aus.
im Test-Explorer wählen Sie Alle ausführen aus.
Weitere Informationen finden Sie unter Schnellstart: Testgesteuerte Entwicklung mit dem Test-Explorer.