Bonjour,
J'ai un projet organisé comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
+com
|+masociete
||+buisness
|||-Classes1
|||-Classes2
|||...
||+support
|||-Classes3
|||-Classes4
|||...
||...
Je shouaite écrire les tests de chacune de mes classe dans un fichier séparé avec pour chaque fichier une 'test suite' regroupant tous les 'test case' applicables à la classe en question.

Je souhaite également définir une test suite au niveau de chaque package pour regrouper les test suites de niveau inférieur pour n'avoir au final qu'une suite au niveau du projet qui lance récursivement tous les tests.

Les essais que j'ai fait en utilisant les macros BOOST_AUTO_TEST_SUITE et BOOST_AUTO_TEST_CASE provoquent des erreurs de link dès que j'ai des tests dans plus d'un fichier.

Voici un exemple de ce que j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
//Classe1Tests.cpp
#define BOOST_TEST_MODULE allTests
#include <boost/test/unit_test.hpp>
 
BOOST_AUTO_TEST_SUITE(Classe1TestsSuite);
BOOST_AUTO_TEST_CASE( test1 ){
	BOOST_CHECK(1 == 2-1);
}
BOOST_AUTO_TEST_SUITE_END();
Tant que je n'ai que ce qui précède dans mon projet, tout va.
Par contre, si j'ajoute ce qui suit, rien ne va plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
//Classe2Tests.cpp
#define BOOST_TEST_MODULE allTests
#include <boost/test/unit_test.hpp>
 
BOOST_AUTO_TEST_SUITE(Classe2TestsSuite);
BOOST_AUTO_TEST_CASE( test2 ){
	BOOST_CHECK(1 != 2);
}
BOOST_AUTO_TEST_SUITE_END();
Voici ce que j'ai au link :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
In function `Z20init_unit_test_suiteiPPc':
C:/dev/boost_1_34_1/boost/test/unit_test_suite.hpp:184: multiple definition of `init_unit_test_suite(int, char**)'
tests\main.o(.text+0x12):C:/dev/boost_1_34_1/boost/test/unit_test_suite.hpp:184: first defined here
Build error occurred, build is stopped
Qu'est-ce que je fais mal ?

P.S. Je suis sous Windows XP, Eclipse CDT, BOOST 1.34.1 compilé avec MinGW