Wenn ich eine Methode mit
teste %Vor%und eine Ausnahme wird ausgelöst, es wird angezeigt, dass eine Ausnahme ausgelöst wurde, aber niemals die Ausnahme wie folgt:
%Vor% Ist es möglich, die Ausnahmebedingungsnachricht ebenfalls zu drucken, d. h. die von my_exception.what()
? my_exception
wird von std::exception
und Überladungen what()
abgeleitet.
Ich habe ein wenig in den Boost-Headern gelesen und BOOST_CHECK_NO_THROW_IMPL in meiner eigenen Header-Datei neu definiert, die ich im Projekt verwende, um das Boost-Verhalten neu zu definieren. Jetzt sieht es so aus:
%Vor%Die Nachteile sind: Es funktioniert, solange es keine Änderungen in BOOST _ * _ NO_THROW
gibtund
Die Ausnahmebedingungsnachricht wird gedruckt, bevor sie in der Testausgabe als Fehler markiert wird. Das sieht in erster Linie ein bisschen schade aus, deshalb gruppiere ich die Ausgabe, indem ich "---" in den Outstream schreibe, um das Lesen zu verbessern. Aber Code nach BOOST_CHECK_IMPL wird nie erreicht werden.
Die obige Lösung funktioniert ganz gut für mich. Fühlen Sie sich frei zu verwenden, wenn Sie das gleiche wünschen =)
(Verwenden Sie CDash für Ctest-Ausgabe, vergessen Sie nicht, das Test-Output-Limit zu erhöhen, oder deaktivieren Sie einfach das Limit: Ссылка )
Ich war genervt von dem gleichen Problem mit BOOST_REQUIRE_NO_THROW
. Ich habe es gelöst, indem ich einfach BOOST_REQUIRE_NO_THROW
entfernt habe. Dies führt zu einer Ausgabe wie:
und bricht den Test ab (geht aber mit dem nächsten Text weiter), was ich wollte. Das hilft allerdings nicht sehr, wenn Sie BOOST_CHECK_NO_THROW oder BOOST_WARN_NO_THROW verwenden wollten.
Tags und Links unit-testing c++ boost-test