Da die Frameworks Google Test, Catch, Boost.Test und Doctest in CLion integriert sind, lassen sich Unit-Tests mühelos durchfü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.
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:
Nutzen Sie Tags, um im Falle einer Catch-Konfiguration die Testserie einzugrenzen. Sie profitieren zudem von der Vervollständigung für Tag-Namen:
Mit diesem benutzerfreundlichen und flüssigen Unit-Testlauf genießen Sie alle Vorteile einer testorientierten Entwicklung. Die zugehörige Ansicht zeigt:
Der Testlauf von CLion ermöglicht Ihnen zudem:
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.
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.
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:
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.