2010-01-15 3 views
8

Ich versuche Boost Test zu verwenden, um einige dringend benötigte Komponententests zu meinem Code hinzuzufügen. Aber ich kann es nicht zur Arbeit bringen. Im Moment habe ich den folgenden CodeVerwenden von Boost-Test mit Visual Studio

#include <Drawing.h> 
#define BOOST_AUTO_TEST_MAIN 
#define BOOST_TEST_MODULE DrawingModelTests 
#include <boost/test/unit_test.hpp> 

BOOST_AUTO_TEST_SUITE(DrawingModelTests) 

BOOST_AUTO_TEST_CASE (DrawingConstructorTest) 
{ 
    Drawing * drawing = new Drawing; 

    delete drawing; 
} 

BOOST_AUTO_TEST_SUITE_END() 

Von dem, was ich verstehe ich nicht einen Haupt- oder irgendetwas da Auftrieb setzen müssen wird es selbst kümmern. Visual Studio gibt mir jedoch weiterhin den Fehler "Einstiegspunkt muss definiert sein". Muss ich manuell einen Link zur statischen Bibliothek oder etwas hinzufügen? Ich kompiliere als Standard-EXE-Konsolenanwendung.

Antwort

9

Ich hatte dieses Problem mit VS2010 und die Lösung war, "Konfigurationseigenschaften -> Linker -> Erweitert -> Einstiegspunkt" auf "Haupt" für das Projekt zu setzen.

+0

Ich kann nicht glauben, nach all dieser Zeit kann ich endlich eine Antwort auf diese Frage stellen ^^. Vielen Dank! –

1

Mein Code ist ähnlich und funktioniert gut. Der einzige Unterschied, den ich sehen kann, ist, dass ich BOOST_AUTO_TEST_MAIN überhaupt nicht definiere. BOOST_TEST_MODULE sagt mir, wo ich main definieren kann, soweit ich weiß.

0

Am Ende wurde Booster.test als dynamische Bibliothek anstelle einer statischen Bibliothek verwendet.

16

Hinzufügen/SUBSYSTEM: CONSOLE zu den Linker-Flags. In den Projekteinstellungen befindet sich dies auf der Seite Linker-> System. Sie können Boost entweder als dynamische oder statische Bibliothek verwenden.

+1

Ich hatte das gleiche Problem, mit der Google-Test-Bibliothek und Verknüpfung mit gtest_main.lib. Das hat das auch behoben. – user75810

1

Ich setze 'Konfigurationseigenschaften -> Linker -> Erweitert -> Einstiegspunkt' auf 'mainCRTStartup', was den Trick für mich macht. (In meiner speziellen Build-Konfiguration verbinde ich Boost-Bibliotheken statisch).

+0

nur das half mir auch, danke! – user2199593