Ich weiß, dass es bereits einige Fragen zu Empfehlungen für C ++ - Unit-Test-Frameworks gibt, aber alle Antworten haben nicht geholfen, da sie nur eines der Frameworks empfehlen, aber keine Informationen zu einem (Funktions-) Vergleich liefern.
Ich denke, die interessantesten Frameworks sind CppUnit, Boost und das neue Google-Testframework. Hat jemand schon einen Vergleich gemacht?
c++
unit-testing
cppunit
googletest
boost-test
Hausmädchen
quelle
quelle
Antworten:
Siehe diese Frage für eine Diskussion.
Sie empfehlen die Artikel: Exploring the C ++ Unit Testing Framework Jungle , Von Noel Llopis. Und das neuere: C ++ Test Unit Frameworks
Ich habe noch keinen Artikel gefunden, der googletest mit den anderen Frameworks vergleicht.
quelle
Ein neuer Player ist Google Test (auch als Google C ++ Testing Framework bekannt ), was allerdings ziemlich nett ist.
Haupteigenschaften:
ASSERT_EQ(5, Foo(i)) << " where i = " << i;
SCOPED_TRACE
für Unterprogrammschleifenquelle
Ich habe gerade mein eigenes Framework, CATCH , veröffentlicht. Es befindet sich noch in der Entwicklung, aber ich glaube, es übertrifft bereits die meisten anderen Frameworks. Unterschiedliche Menschen haben unterschiedliche Kriterien, aber ich habe versucht, den größten Teil des Bodens ohne zu viele Kompromisse abzudecken. Schauen Sie sich meinen verlinkten Blogeintrag an, um einen Vorgeschmack zu erhalten. Meine fünf wichtigsten Funktionen sind:
Es hat auch Objective-C-Bindungen. Das Projekt wird auf Github gehostet
quelle
CHECK_FLASE
undREQUIRE_FLASE
Makros.Die Boost-Testbibliothek ist eine sehr gute Wahl, insbesondere wenn Sie Boost bereits verwenden.
Es unterstützt:
PS: Ich habe einen Artikel darüber geschrieben, der Ihnen beim Einstieg helfen kann: C ++ Unit Testing Framework: Ein Boost-Test-Tutorial
quelle
Wikipedia verfügt über eine umfassende Liste von Unit-Testing-Frameworks mit Tabellen, in denen die unterstützten oder nicht unterstützten Funktionen aufgeführt sind.
quelle
Ich habe kürzlich xUnit ++ veröffentlicht , speziell als Alternative zu Google Test und der Boost-Testbibliothek (siehe Vergleiche ). Wenn Sie mit xUnit.Net vertraut sind, sind Sie bereit für xUnit ++.
Haupteigenschaften:
Assert.Equal(-1, foo(i)) << "Failed with i = " << i;
Log.Debug << "Starting test"; Log.Warn << "Here's a warning";
quelle
CppUTest - sehr schönes, leichtes Framework mit Scheinbibliotheken . Ein genauerer Blick lohnt sich.
quelle
CPUnit ( http://cpunit.sourceforge.net ) ist ein Framework, das Google Test ähnelt, jedoch weniger Macos verwendet (Asserts sind Funktionen) und bei dem den Makros ein Präfix vorangestellt wird, um die übliche Makrofalle zu vermeiden. Tests sehen aus wie:
Sie registrieren sich automatisch, sodass Sie nicht mehr benötigen. Dann wird es einfach kompiliert und ausgeführt. Ich finde die Verwendung dieses Frameworks sehr ähnlich wie die Verwendung von JUnit für diejenigen, die einige Zeit mit der Programmierung von Java verbringen mussten. Sehr schön!
quelle
Es gibt einige relevante Ressourcen zum Testen von C ++ - Einheiten unter http://www.progweap.com/resources.html
quelle
API Sanity Checker - Testframework für C / C ++ - Bibliotheken:
Einzigartige Funktionen im Vergleich zu CppUnit, Boost und Google Test:
quelle