crpcut (ausgesprochen "Mist cut") ist die Fächer Robust Posix C ++ Unit Tester. Mit crpcut ist es einfach, Tests, die anderen Unit-Test-Frameworks nicht verwalten kann schreiben.
Einführendes Beispiel:
Ein Beispiel testet Teile std :: string:
& Nbsp; #include
& Nbsp; #include
& Nbsp; struct apastr // Halterung für mosts Tests
& Nbsp; {
& Nbsp; apastr (): s ("apa") {}
& Nbsp; std :: string s;
& Nbsp;};
& Nbsp; Testsuite (Grundlagen)
& Nbsp; {
& Nbsp; TEST (default_constr_and_destr)
& Nbsp; {
& Nbsp; std :: string s;
& Nbsp; ASSERT_TRUE (s.empty ());
& Nbsp; ASSERT_EQ (s.length (), 0);
& Nbsp;}
& Nbsp; TEST (constr_from_char_array, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.length (), 3UL);
& Nbsp;}
& Nbsp; TEST (at, apastr,
& Nbsp; DEPENDS_ON (default_constr_and_destr))
& Nbsp; {
& Nbsp; ASSERT_EQ (s.at (1), "p");
& Nbsp;}
& Nbsp;}
& Nbsp; Testsuite (Fehler, DEPENDS_ON (ALL_TESTS (Grundlagen)))
& Nbsp; {
& Nbsp; TEST (at_out_of_range, apastr,
& Nbsp; EXPECT_EXCEPTION (std :: out_of_range))
& Nbsp; {
& Nbsp; s.at (4);
& Nbsp;}
& Nbsp; TEST (index_oper_out_of_range, apastr,
& Nbsp; EXPECT_SIGNAL_DEATH (SIGABRT)
& Nbsp; NO_CORE_FILE)
& Nbsp; {
& Nbsp; s [4];
& Nbsp;}
& Nbsp;}
& Nbsp; int main (int argc, char * argv [])
& Nbsp; {
& Nbsp; zurück crpcut :: test_case_factory :: run_test (argc, argv);
& Nbsp;}
Ähnliche Tests profitiert sie in Testsuiten zusammengefasst. Testsuiten können auf anderen Testsuiten ab, was bedeutet, dass die darin enthaltenen Tests werden nur ausgeführt, wenn alle Tests hängt es erfolgreich abgeschlossen. Die Ergebnisse können unter Verwendung einer Anzahl ASSERT Makros validieren. Tests können Vorrichtungen verwenden, um gemeinsame Inhalte auszudrücken. Tests zu erwarten, verlassen nach dem Ausnahmeprinzip, oder sterben werden. Die Erwartungen, die nicht erfüllt werden, sind Fehler. Meldungen auf stderr und stdout sind gaught und im Ergebnisprotokoll enthalten.
Warum crpcut
Am wichtigsten ist, ist es einfach, Tests zu schreiben. Mit crpcut, konzentrieren Sie sich auf Ihrem Testaufbau und Testlogik, nicht an den Grenzen, die durch die Testumgebung auferlegt.
Mit crpcut, läuft jeden Testfall in einem eigenen Prozess und eine eigene Arbeitsverzeichnis. Wenn ein Testfall ausfällt, endet der Prozess sofort, bevor sie tut weiteren Schaden. Das bedeutet, dass jeder Testfall beginnt mit einer sauberen Weste, unbeeinflusst von anderen Tests. Dies ist die Abschottung.
Es bedeutet auch, dass die Test-Suite weiter, auch wenn ein Test abstürzt. Sie können Fristen für die Testfälle festgelegt und wenn die erlaubte Zeit ernsthaft überzogen, ist der Testfall-Prozess getötet. Diese beiden bilden die Robustheit Teil.
Sie können Abhängigkeiten zwischen Testfällen und zwischen Testsuiten definieren, so dass, wenn eine grundlegende Tests fehlschlägt, werden die Tests, die auf der grundlegenden Funktionalität basieren, werden nicht einmal ausgeführt werden.
Die crpcut Hauptprozess keinen dynamischen Speicher zu der Zeit ein Testfall-Prozess gestartet zugeordnet, so können Sie crpcut laufen mit einem Speichertest-Tool wie valgrind, und wenn es wird Speicher zugewiesen, wenn der Testfall-Prozess beendet wird, können Sie können Sie sicher sein, dass Sie ein Speicherleck in der Test gefunden zu haben.
Wenn Sie einen Multi-Core-CPU haben, kann es von Vorteil sein, mehrere Testfälle parallel laufen. crpcut ermöglicht, dass.
Wenn Dateien in den Testprozess "Arbeitsverzeichnis nach der Testfall-Prozess verlassen hat, beendet ist, wird der Testfall als nicht bestanden. Das Arbeitsverzeichnis wird durch crpcut unberührt, für Sie zu prüfen
Was ist neu in dieser Pressemitteilung:.
- Diese Version unterstützt Distributionen mit alten Versionen von CMake.
Was ist neu in Version 1.9.1:
- libcrpcut_basic.so wurde gebaut, aber nicht installiert
Was ist neu in Version 1.8.4:
- Dies ist ein Bugfix-Release geringfügige Korrektur valgrind Instrumentierung Probleme , Test Abhängigkeiten und fehlerhaften Attribut Testdauer in XML-Berichte.
Was ist neu in Version 1.8.2:
- Das kleinere Funktionserweiterung wird die Befehlszeilenparameter - -timeout-Multiplikator = Faktor nun auch Auswirkungen auf die Timeouts für Vorrichtungsbau und Zerstörung.
Was ist neu in Version 1.8.1:
- Das kleinere Funktionserweiterung wird die Befehlszeilenparameter - -timeout-Multiplikator = Faktor nun auch Auswirkungen auf die Timeouts für Vorrichtungsbau und Zerstörung.
Was ist neu in Version 1.7.2:
- Diese Version eine kleinere Fehler mit dem NO_CORE_FILE Test behebt Modifizierungsmittel, das auf Linux, wenn / proc / sys / kernel / core_pattern beschriebenen Rohrleitungen die Core-Dump auf ein Programm nicht in einer Datei gespeichert. aufgetreten
Was ist neu in Version 1.6.1:
- Das ist ein Patch für einen Fehler, der in einigen Fällen verursacht fehlerhaften XML-Ausgabe, die durch fehlende eng am blocked_tests Liste.
Was ist neu in Version 1.6.0:
- Die neuen Features sind ein zusätzlicher Parameter verwenden ASSERT_THROW () und VERIFY_THROW (), die den Wert einer Exception-Objekt, zwei istream basierte Version von get_parameter (), um Werte aus der Kommandozeile übergeben holen, und eine Option, um zu bauen libcrpcut als statische oder Shared Library überprüft.
Was ist neu in Version 1.5.0:
- Die wesentliche Neuerung ist Tagging von Tests. Markierungen sind ein Testauswahlverfahren orthogonal zu der Testsuites. Tags können auch verwendet werden, um zwischen Test, der kritischen (zB Regressionen) sind und testen, die nicht kritisch sind, zu unterscheiden (zB die Funktionalität derzeit bearbeitet.)
- wird Experimentelle Unterstützung auch für die Dekoration Prüfberichte mit beispielsweise ANSI-Farb entweicht zur Verfügung.
Kommentare nicht gefunden