2012-05-13 28 views
8

En Boost.Test, ¿cómo puedo obtener el nombre del caso actual de prueba automática?En Boost.Test, ¿cómo obtener el nombre de la prueba actual?

Ejemplo:

#include <boost/test/unit_test.hpp> 
BOOST_AUTO_TEST_CASE(MyTest) 
{ 
    std::cerr << "Starting " << test_name << std::endl; 
    // lots of code here 
    std::cerr << "Ending " << test_name << std::endl; 
} 

En el ejemplo, quiero la variable test_name para contener "MyTest".

+1

Tome un vistazo a [esta] (https://groups.google.com/forum/?fromgroups=#!topic/boost-list/ZzFmu14UfeQ), hasta ahora me funciona –

Respuesta

17

Hay una función * no documentada que se puede llamar para ese fin. La siguiente línea hará que se vacíe el nombre de la prueba actual a cerr:

#include <boost/test/framework.hpp> 

... 

std::cerr << boost::unit_test::framework::current_test_case().p_name 
      << std::endl; 

Nota sin embargo que el uso de esta API no descarga los parámetros en el caso de las pruebas parametrizados.

Usted también puede estar interesado en el test checkpoints ** (que parece ser lo que quiere hacer.)

#include <boost/test/included/unit_test.hpp> 

... 

BOOST_AUTO_TEST_CASE(MyTest) 
{ 
    BOOST_TEST_CHECKPOINT("Starting"); 
    // lots of code here 
    BOOST_TEST_CHECKPOINT("Ending"); 
} 

EDITAR

* La función current_test_case() está documentado, véase the official Boost documentation .

** BOOST_TEST_CHECKPOINT anteriormente se llamaba BOOST_CHECKPOINT. Vea el Boost changelog (1.35.0).

+0

Sin embargo, no menciono usar ese nombre cuando uso --run_test = , solo puedo ejecutar mi prueba usando comodines, no puedo obtener el nombre exacto de la prueba, ¡raro! – Antonio

+1

Resuelto, tuve que especificar también el banco de pruebas, y hago '--run_test = /'! – Antonio

+0

Agregué un enlace a la documentación + la que falta incluir. – BenC

Cuestiones relacionadas