2016-05-26 15 views
1

Ich habe eine Bibliothek, in der einige Testprogramme mit Boost.Test geschrieben wurden. Die Testdateien haben nicht #define BOOST_TEST_DYN_LINK oder #include <boost/test/included/unit_test.hpp>. Sie haben nur #include <boost/test/unit_test.hpp>. Also die main() Funktion ist nicht implizit.Boost-Unit-Test mit meiner eigenen Hauptfunktion zum Debuggen ausführen

Jetzt muss ich einige Bibliotheksfunktionen debuggen, die in den Testfällen verwendet wurden. Gegeben, dass ich kann nicht hinzufügen oder ändern Sie etwas in den Testprogrammen, wie kann ich die Testprogramme unter einem Debugger aufrufen?

+0

Wenn Sie nichts hinzufügen können, wie würden Sie dann Ihr eigenes 'main()' hinzufügen? Sie sagen "Programme", was bedeuten würde, dass eine ausführbare Datei erstellt wurde. Führen Sie sie einfach wie jede andere ausführbare Datei im Debugger aus (Sie haben keine Plattform oder kein Toolkit angegeben, daher kann ich Ihnen dazu keine näheren Angaben machen). | An dieser Stelle ist die Frage eher verwirrend, bitte erläutern Sie mehr. –

+0

Entschuldigung, bei Programmen meinte ich Dateien (CPP-Dateien) und ich darf diese CPP-Dateien sowieso nicht ändern. Es gibt keine ausführbare Datei. Aber ich kann neue Dateien erstellen und sie kompilieren, um ausführbare Dateien zu generieren, und das ist genau meine Frage, wie kann ich das tun? Btw, ich benutze QtCreator als IDE, g ++ 4.8 auf Ubuntu. –

+0

Das Framework scheint verwendet zu werden [als statische Bibliothek] (http://www.boost.org/doc/libs/1_61_0/libs/test/doc/html/boost_test/usage_variants.html#boost_test.usage_variants.static_lib) - Folgen Sie einfach diesen Anweisungen, um den Testläufer zu machen. –

Antwort

0

Erstellen Sie einen Test-Runner (z. B. main_test.cpp) und verknüpfen Sie Ihre Bibliothek damit.

# main_test.cpp 
// --- Boost Includes --- 
#define BOOST_TEST_DYN_LINK 
#include <boost/test/unit_test.hpp> 

Die aufgerufene ausführbare Datei sollte Ihre Tests ausführen. Sie können dann einzelne Tests debuggen, indem Sie den Runner mit ./myrunner --run_test='some_testsuite'/../'some_testname' aufrufen.