TwinSun | Bonjour,
j'ai fait pleins d'essais pour arriver à faire fonctionner la bibliothèque cppunit, et je n'y suis arrivé qu'en mettant toutes les classes dans le même fichier (avec le main aussi).
Pourriez-vous regarder mon code et me dire ce qui ne va pas s'il vous plaît ? C'est vraiment du code de base avec rien dedans.
Vous pouvez télécharger les sources.
Fichier MaClasse.H
Code :
- #ifndef _MA_CLASSE_H
- #define _MA_CLASSE_H
- class MaClasse
- {
- private:
- int _monChamp;
- public:
- MaClasse(int);
- int getValeur();
- };
- #endif
|
Fichier MaClasse.cpp
Code :
- #include "MaClasse.H"
- MaClasse::MaClasse(int a)
- : _monChamp(a)
- {
- }
- int MaClasse::getValeur()
- {
- return 0;
- }
|
Fichier MaClasseTest.H
Code :
- #ifndef _MA_CLASSE_TEST
- #define _MA_CLASSE_TEST
- #include <iostream>
- #include <cppunit/TestCase.h>
- #include <cppunit/TextTestResult.h>
- #include <cppunit/TestSuite.h>
- #include "MaClasse.H"
- class MaClasseTest : public CppUnit::TestCase
- {
- public:
- MaClasseTest(std::string name);
- void runTest();
- };
- #endif
|
Fichier MaClasseTest.cpp
Code :
- #include "MaClasseTest.H"
- MaClasseTest::MaClasseTest(std::string name)
- : CppUnit::TestCase( name )
- {
- }
- void MaClasseTest::runTest()
- {
- MaClasse mc1(10);
- MaClasse mc2(10);
- MaClasse mc3(15);
- CPPUNIT_ASSERT( mc1.getValeur() == mc2.getValeur() );
- CPPUNIT_ASSERT( mc1.getValeur() != mc3.getValeur() );
- }
|
Fichier test.cpp
Code :
- #include <iostream>
- #include <cppunit/TextTestResult.h>
- #include <cppunit/TestSuite.h>
- #include <cppunit/TestCase.h>
- #include "MaClasseTest.H"
- int main(void)
- {
- std::cout << "titi" << std::endl;
- MaClasseTest t1(std::string ("toto" ));
- t1.runTest();
- std::cout << "coucou" << std::endl;
- }
|
Résultat de la compilation
Code :
- g++ -lcppunit -o test -W -Wall -g test.cpp MaClasse.cpp MaClasseTest.cpp
- /tmp/ccdujrUq.o(.gnu.linkonce.t._ZN12MaClasseTestD1Ev+0x22): dans la fonction MaClasseTest::~MaClasseTest [in-charge]():
- /home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/test.cpp:10: undefined reference to `CppUnit::TestCase::~TestCase [not-in-charge]()'
- /tmp/ccOOzJew.o(.text+0x27): dans la fonction MaClasseTest::MaClasseTest[not-in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > ):
- /home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::TestCase[not-in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > )'
- /tmp/ccOOzJew.o(.text+0x99): dans la fonction MaClasseTest::MaClasseTest[in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > ):
- /home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::TestCase[not-in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > )'
- /tmp/ccOOzJew.o(.text+0x162): dans la fonction MaClasseTest::runTest() :
- /home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:14: undefined reference to `CppUnit::SourceLine::SourceLine[in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
- /tmp/ccOOzJew.o(.text+0x1cb):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:14: undefined reference to `CppUnit::Asserter::failIf(bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, CppUnit::SourceLine)'
- /tmp/ccOOzJew.o(.text+0x221):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:14: undefined reference to `CppUnit::SourceLine::~SourceLine [in-charge]()'
- /tmp/ccOOzJew.o(.text+0x231):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:14: undefined reference to `CppUnit::SourceLine::~SourceLine [in-charge]()'
- /tmp/ccOOzJew.o(.text+0x2bf):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:15: undefined reference to `CppUnit::SourceLine::SourceLine[in-charge](std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
- /tmp/ccOOzJew.o(.text+0x32e):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:15: undefined reference to `CppUnit::Asserter::failIf(bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, CppUnit::SourceLine)'
- /tmp/ccOOzJew.o(.text+0x384):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:15: undefined reference to `CppUnit::SourceLine::~SourceLine [in-charge]()'
- /tmp/ccOOzJew.o(.text+0x394):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:15: undefined reference to `CppUnit::SourceLine::~SourceLine [in-charge]()'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTV12MaClasseTest+0x10):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::run(CppUnit::TestResult*)'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTV12MaClasseTest+0x14):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::countTestCases() const'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTV12MaClasseTest+0x18):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::getName() const'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTV12MaClasseTest+0x1c):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::toString() const'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTV12MaClasseTest+0x20):/home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::run()'
- /tmp/ccOOzJew.o(.gnu.linkonce.t._ZN12MaClasseTestD0Ev+0x22): dans la fonction MaClasseTest::~MaClasseTest [in-charge deleting]():
- /home/quetzalcoatl/Documents/projects/POO/cppunit/testExamples/test/MaClasseTest.cpp:5: undefined reference to `CppUnit::TestCase::~TestCase [not-in-charge]()'
- /tmp/ccOOzJew.o(.gnu.linkonce.r._ZTI12MaClasseTest+0x8):/usr/include/c++/3.3/iostream:92: undefined reference to `typeinfo for CppUnit::TestCase'
- collect2: ld a retourn 1 code d'tat d'excution
|
Compilateur : g++ (GCC) 3.3.3 (Debian 20040429)
Linkeur : GNU ld version 2.14.90.0.7 20031029 Debian GNU/Linux
cppunit : 1.8.0
Merci beaucoup Message édité par TwinSun le 05-05-2004 à 11:27:23
|