Unit-Tests

Da die Frameworks Google Test, Catch, Boost.Test und Doctest in CLion integriert sind, lassen sich Unit-Tests mühelos durchführen.

Tests ausführen

Standardmäßig werden Tests durchgeführt, indem einfach eine reguläre Programmdatei in CLion ausgeführt wird. Um den integrierten Test-Runner verwenden zu können, sollten Sie jedoch die speziellen Konfigurationen für Google Test, Catch, Boost.Test bzw. Doctest verwenden.

Tests ausführen

Im Falle, dass Ihr CMake-Ziel mit gtest oder gmock verbunden ist, wird diese Konfiguration automatisch erstellt. Alternativ können Sie einen einzelnen Test, eine Fixture oder eine ganze Datei ausführen, indem Sie ⌃⇧R drücken. Zusätzlich haben Sie die Möglichkeit, derartige Konfigurationen manuell in den Einstellungen unter Run | Edit Configurations... zu erstellen und zu aktualisieren:

Tests ausführen

Nutzen Sie Tags, um im Falle einer Catch-Konfiguration die Testserie einzugrenzen. Sie profitieren zudem von der Vervollständigung für Tag-Namen:

Catch-Konfiguration

Testlauf

Ergebnisse inspizieren

Mit diesem benutzerfreundlichen und flüssigen Unit-Testlauf genießen Sie alle Vorteile einer testorientierten Entwicklung. Die zugehörige Ansicht zeigt:

  • die Fortschrittsleiste mit dem prozentualen Anteil der bisher durchgeführten Tests,
  • eine Baumansicht aller laufenden Tests, einschließlich Informationen über deren Status und Dauer,
  • den gesamten Ausgabe-Stream des Tests und mehr

Der Testlauf von CLion ermöglicht Ihnen zudem:

  • einen einzelnen Test, alle Tests oder alle fehlgeschlagenen Tests erneut durchzuführen,
  • Testergebnisse zu exportieren und vorherige, automatisch gespeicherte Ergebnisse über den Verlauf zu öffnen,
  • mittels Strg+↓ zum Quellcode eines bestimmten Tests zu navigieren
Run-/Status-Symbole

Run-/Status-Symbole

Anhand der Symbole in der rechten Randleiste können Sie das Ausführen/Debugging von Tests initiieren oder diese mit Valgrind Memcheck durchführen. Gleichzeitig erfahren Sie auch den Status der Tests: Erfolgreich oder fehlgeschlagen.

Code generieren

Die Funktion zur Codegenerierung (Alt+Einfügen) kann beim Schreiben von Unit-Tests sehr hilfreich sein. Für die Google Test-Methoden, Test erstellen, Test-Fixture oder SetUp/TearDown, gilt.

Codegenerierung in Tests

Wird ein Test für Fixtures generiert, wird das Makro TEST() automatisch in das entsprechende Makro TEST_F(), TEST_P(), TYPED_TEST(), oder TYPED_TEST_P() konvertiert:

Codegenerierung in Tests
CTest-Unterstützung

CTest-Unterstützung

CLion unterstützt den CMake-spezifischen Test-Runner CTest. Die IDE erkennt die Liste der mit CTest ausgeführten Tests und erstellt automatisch Run/Debug-Konfigurationen für sie. Beim Ausführen von Tests werden die Ergebnisse im integrierten Test-Runner angezeigt. Dort können Sie die Tests debuggen, fehlgeschlagene Tests wiederholen und weitere Aktionen ausführen.