2010-01-15 16 views
8

Estoy tratando de usar Boost Test para agregar algunas pruebas de unidad muy necesarias a mi código. Sin embargo, parece que no puedo hacer que funcione. Ahora mismo tengo el siguiente códigoUso de la prueba de refuerzo 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() 

Por lo que entiendo que no necesito poner un principal o nada desde el impulso se hará cargo de él mismo. Sin embargo, Visual Studio me sigue dando un error de "punto de entrada debe estar definido". ¿Debo agregar manualmente un enlace a la biblioteca estática o algo así? Estoy compilando como una aplicación de consola .exe estándar.

Respuesta

9

Tuve este problema con VS2010 y la solución fue establecer 'Propiedades de configuración -> Enlazador -> Avanzado -> Punto de entrada' a 'principal' para el proyecto.

+0

No puedo creer que, después de todo este tiempo, finalmente pueda responder a esa pregunta ^^. ¡Gracias! –

1

Mi código es similar y funciona bien. La única diferencia que puedo ver es que no defino el BOOST_AUTO_TEST_MAIN en absoluto. BOOST_TEST_MODULE dice dónde definir main, que yo sepa.

0

Al final, la forma de hacerlo funcionar fue utilizar boost.test como una biblioteca dinámica en lugar de una biblioteca estática.

16

Agregar/SUBSISTEMA: CONSOLA a las banderas del enlazador. En la configuración del proyecto, esto está en la página Enlazador-> Sistema. Puede usar boost como biblioteca dinámica o estática.

+1

Tuve el mismo problema, al usar la biblioteca Google Test, y el enlace a gtest_main.lib. Esto solucionó eso también. – user75810

1

Configuré 'Propiedades de configuración -> Enlazador -> Avanzado -> Punto de entrada' a 'principalCRTStartup', lo que funciona bien para mí. (En mi configuración particular de compilación, estoy enlazando estáticamente bibliotecas de impulso).

+0

solo esto me ayudó a mí también, ¡gracias! – user2199593

Cuestiones relacionadas