Ich würde gerne hören, was ein empfohlenes C++ Unit Testing Framework ist oder, falls es kein einziges gibt, was ein allgemein akzeptiertes Flussdiagramm ist, das mir bei der Auswahl eines helfen kann.
Sie sollten die folgenden wichtigen Kriterien für den Vergleich von C++ Unit Testing Frameworks berücksichtigen:
-fno-rtti
und einige Frameworks können dann nicht kompiliert werden.Um die Popularität zu messen, könnte es ausreichen, Stack Overflow und GitHub zu durchsuchen . Die folgenden Statistiken wurden im Januar 2016 erhoben und können sich im Laufe der Zeit drastisch ändern; auch Trends, die hier nicht dargestellt werden, können wichtiger sein als absolute Zahlen.
Eine Suche nach [unit-testing] [c++] findet 1.211 Fragen zu SO. Auf der Suche nach individuellen Frameworks finden wir:
[googletest]
)[cppunit]
)[catch-unit-test]
)Auf GitHub gibt es etwa 461.000 Repositories für die Abfrage „Sprache:C++“.
GitHub:
"include gtest.h"
)"include cppunit"
)"include catch.hpp"
("include CppUnitLite"
)(die Zahl in „Wir haben xxx Code-Ergebnisse gefunden“, nachdem Sie im linken Menü auf C++ geklickt haben)
Es scheint, dass Google Test ein klarer Gewinner des SO+GitHub-Beliebtheitswettbewerbs ist, höchstwahrscheinlich, weil es von großen Projekten wie LLVM und Chromium übernommen wurde.
Ich möchte die Community-Wiki-Antwort um ein paar weitere Punkte ergänzen, die Sie bei der Auswahl Ihres Test-Frameworks berücksichtigen sollten. Dies betrifft Ihre Auswahl eines Test-Tools:
Wenn Sie Komponententests für eingebettete, sicherheitskritische Software durchführen, gibt es nur sehr wenige Tools mit der erforderlichen Unterstützung von Standards und Zertifizierungen. Rational Test RealTime & LDRA Testbed sind Beispiele - aber sie sind nicht billig, da sie für jede Lizenz pro Jahr und Entwickler Zehntausende von Dollar kosten .
Haftungsausschluss - Ich arbeite für keines der oben genannten Unternehmen, habe aber ihre Produkte verwendet, da ich intensiv in der sicherheitskritischen, eingebetteten Echtzeitbranche gearbeitet habe.
Mawg sagt, Monica wieder einzusetzen