Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Angebot
Angebot anfordern Bitte füllen Sie dieses kurze Formular aus und wir senden Ihnen in Kürze ein kostenloses Angebot zu.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Subscribe to our Vacancies Please fill in this quick form to be among the first to receive our updates.
* Required fields
Your privacy is important to us. We will never share your data.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Photo of Volodymyr Korniichuk Senden Sie eine E-Mail an Volodymyr Korniichuk Bitte füllen Sie dieses kurze Formular aus, um unseren Experten direkt zu kontaktieren.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Infopulse - Expert Software Engineering, Infrastructure Management Services
Read the Full Case Study Don't miss the most interesting part of the story!
Submit this quick form to see the rest and to freely access all case studies on our website.
* Required fields
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.

Schnellstart mit Google Test

Google Test ist ein Framework von Google für Modultests des C++-Codes. Die gesamte Architektur ähnelt etwas den konventionellen boost::test und CppUnit, wobei die Details ziemlich unterschiedlich ausfallen (zum jeweiligen Vorteil, wie ich glaube). Ich werde kurz das Hallo-Welt-Programm bei Google Test beschreiben und dabei auf einige potenzielle Probleme hinweisen, denen Sie begegnen können, während Sie Google Test bei der Entwicklung für Visual Studio verwenden.

Kompilierung

  1. Laden Sie das Archiv mit dem Code herunter und dekomprimieren Sie es.
  2. Es gibt zwei Dateien gtest.sln und gtest-md.sln im Ordner guest -1.6.0/msvc. Es handelt sich hierbei um Solution-Dateien von Visual Studio. Sie unterscheiden sich in den Kompilierungsoptionen: gtest.sln erstellt einen Code mit /MT und gtest-md.sln mit /MD. Wenn Sie nicht wissen, was wofür verwendet wird, können Sie zum Beispiel hier oder hier nachlesen. Sie sollten die gleiche Variante kompilieren, wie im Projekt, das Sie testen wollen. Es ist wichtig, damit Sie keine vielen sonderbaren Verknüpfungsfehler haben. Sie können die Einstellungen, die für Ihr Projekt verwendet werden, hier überprüfen:

Schnellstart mit Google Test - Infopulse - 558305

Google-Test-Code kann mit Visual Studio 2008/2010 erfolgreich kompiliert werden (ich habe keine anderen Versionen ausprobiert). Am Ende erhalten Sie die Dateien gtestd.lib\gtest.lib (für die Debug- und Release-Konfigurationen). Das ist auch schon die ganze Kompilierung.

Hallo Welt

  1. Öffnen Sie die Solution-Dateien, die Sie testen werden. Erstellen Sie ein neues Projekt (C++-Konsolenanwendung).
  2. Erstellen Sie in diesem Projekt eine Abhängigkeit von den Bibliotheken, die im zweiten Schritt (gtestd.lib\gtest.lib) kompiliert wurden, den Pfad zum Include-Ordner bei Google Test, Abhängigkeiten für die Projekte in Ihner Lösung, die Sie testen warden..Schnellstart mit Google Test - Infopulse - 334896Schnellstart mit Google Test - Infopulse - 907066
  3. Schreiben Sie den folgenden Code in der Hauptdatei des Testprojekts:
  4.     #include "stdafx.h"
        #include "gtest/gtest.h"
        
        class CRectTest : public ::testing::Test {
        };
        
        TEST_F(CRectTest, CheckPerimeter) 
        {
        CSomeRect rect;
        rect.x = 5;
        rect.y = 6;
        ASSERT_TRUE(rect.GetPerimeter() == 22);
        }
        
        int main(int argc, char **argv) {
        ::testing::InitGoogleTest(&argc, argv);
        return RUN_ALL_TESTS();
        }
      

    Hier testen wir ein Rechteck auf die Richtigkeit der Kreislinienberechnung. Schauen Sie nur, wie bequem es ist: Es besteht die Notwendigkeit, weder jeden Test in der Hauptfunktion anzumelden, noch Testmethoden in den Include-Dateien niederzuschreiben.

  5. Starten Sie das Testprojekt. Beachten Sie bitte Folgendes:
    Schnellstart mit Google Test - Infopulse - 079857
  6. Probleme:

Nummer 1

Irren Sie sich nicht bei der Auswahl der Solution-Datei im zweiten Schritt. Wenn Sie einen Fehler machen und es vergessen, dann wird es praktisch unmöglich sein, den Fehler zu finden.

Nummer 2

Wenn Sie den Plan verfolgen, die Haupttestanwendung in verschiedenen Projekten zu platzieren, werden Sie mit einem heiklen Nebeneffekt konfrontiert. Der Punkt ist, dass die Google-Modultests praktisch Kompilierzeitklassen sind, und der Visual-C++-Compiler mit einem internen Bug wird diese Klassen im Laufe der Kompilierung einfach ausschließen. Um den Fehler zu vermeiden, verwenden Sie die hier beschriebene Methode.

Nummer 3

Denken Sie daran, die Kompilierklassenbibliotheken nicht nur zu den Abhängigkeiten des zu testenden Projekts hinzuzufügen, sondern auch zu den Referenzen, sonst wird es Verknüpfungsfehler geben.

Weitere Referenzen

FAQ
Framework für Fortgeschrittene
Teststart-Plug-in für Visual Studio

Newsletter abonnieren