2010-01-15 6 views
8

Sto provando a utilizzare Boost Test per aggiungere alcuni test di unità necessari al mio codice. Tuttavia non riesco a farlo funzionare. In questo momento ho il seguente codiceUtilizzo del test di potenziamento con 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() 

Da quello che ho capito non ho bisogno di mettere un principale o nulla in quanto spinta si prenderà cura di lui stesso. Tuttavia Visual Studio continua a darmi un errore di "entry point deve essere definito". Devo aggiungere manualmente un collegamento alla libreria statica o qualcosa del genere? Sto compilando come applicazione console .exe standard.

risposta

9

Ho riscontrato questo problema con VS2010 e la soluzione era impostare 'Proprietà di configurazione -> Linker -> Avanzate -> Punto di ingresso' su 'main' per il progetto.

+0

Non posso credere, dopo tutto questo tempo, posso finalmente dare una risposta a questa domanda ^^. Grazie! –

1

Il mio codice è simile e funziona correttamente. L'unica differenza che posso vedere è che non definisco lo BOOST_AUTO_TEST_MAIN. BOOST_TEST_MODULE dice dove definire main, per quanto ne so.

0

Alla fine, il modo per farlo funzionare era utilizzare boost.test come libreria dinamica invece di una libreria statica.

16

Aggiungi/SUBSYSTEM: CONSOLE alle flag del linker. Nelle impostazioni del progetto, si trova nella pagina Linker-> Sistema. Puoi usare boost come libreria dinamica o statica.

+1

Ho avuto lo stesso problema, utilizzando la libreria di Google Test e il collegamento a gtest_main.lib. Questo ha risolto anche questo. – user75810

1

Ho impostato 'Proprietà di configurazione -> Linker -> Avanzate -> Punto di ingresso' a 'mainCRTStartup', che fa il trucco per me. (Nella mia particolare configurazione di build sto collegando staticamente le librerie di boost).

+0

solo questo ha aiutato anche me, grazie! – user2199593