2011-02-02 32 views
11

Estoy usando Boost.Test para pruebas unitarias.Pruebas de Boost.Test en una biblioteca estática

Debido a varias razones, me gustaría escribir los casos de prueba unitarios en diferentes bibliotecas estáticas.

El problema es que cuando hago esto, el registrador automático no funciona.

Por ejemplo, si tengo algo como:

// foo_tests.cpp 
#define BOOST_TEST_MODULE "Foo" 
#include <boost/test/unit_test.hpp> 
BOOST_AUTO_TEST_CASE(Bar) 
{ 
    BOOST_CHECK(false); 
} 
// used to generate libFooTests.a 

// main.cpp 
#define BOOST_TEST_DYN_LINK 
#define BOOST_TEST_MAIN 
#include <boost/test/unit_test.hpp> 
// used to generate main.o 

Entonces, si me enlace con main.o libFooTests.a y ejecutar el binario final, que dice:

Test setup error: test tree is empty

Todo funciona bien si creo el código binario a partir de los códigos fuente directamente, pero quiero poder escribir pruebas unitarias dentro de bibliotecas estáticas utilizando el registro automático.

¿Se puede lograr esto?

¿Hay alguna macro que deba definir? Algún símbolo que necesito exportar de libFooTests.a?

Gracias!

Respuesta

Cuestiones relacionadas