Question Tests Boost.Test sur une bibliothèque statique


J'utilise Boost.Test pour les tests unitaires.

Pour plusieurs raisons, j'aimerais écrire les cas de test unitaires sur différentes bibliothèques statiques.

Le problème est que lorsque je fais cela, le bureau d'enregistrement automatique ne fonctionne pas.

Par exemple, si j'ai quelque chose comme:

// 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

Ensuite, si je lie main.o avec libFooTests.a et exécute le binaire final, cela dit:

Test setup error: test tree is empty

Tout fonctionne très bien si je crée le binaire directement à partir des codes sources, mais je ne veux pas être capable d'écrire des tests unitaires dans des bibliothèques statiques en utilisant l'enregistrement automatique.

Puis-je y arriver?

Y a-t-il une macro que je dois définir? Un symbole que je dois exporter depuis libFooTests.a?

Merci!


11
2018-02-02 17:56


origine


Réponses:


Comment forcer l'inclusion de définitions d'objet "inutilisées" dans une bibliothèque

C'est votre même problème et vous devrez trouver une solution similaire à celle que j'ai utilisée dans ma réponse.


1
2018-02-02 18:50