1. Prérequis
Pour pouvoir utiliser CppUnit, celui-ci doit être présent sur votre machine. Sur un système Linux Mandrake la commande suivante permet de l'installer :
% urpmi cppunit-devel
2. Création d'un sous-projet
D'abord, il faut un projet KDevelop, pour en créer un, je vous invite à consulter cet article http://blog.touv.fr/2005/03/creer-un-simple-programme-qt-avec.html. Ensuite, il faut créer un sous-projet. Personnellement, je l'ai appelé : «tests»
3. Configurer Automake et Autoconf
Au moment où j'écris cet article, je ne connais pas le moyen (si il existe) de paramétrer complétement Automake depuis KDevelop.
On va donc faire à la main une partie de la configuration.
Quittez KDevelop et rendez-vous dans le répertoire «tests». Editez le fichier «Makefile.am».
Théoriquement, il devrait ressembler à ça :
INCLUDES =
METASOURCES = AUTO
Ajoutez les lignes suivantes :
KDE_CXXFLAGS=$(USE_EXCEPTIONS)
check_PROGRAMS = tester
Maintenant rendez-vous dans le répertoire racine de votre projet. Editez le fichier «configure.in.in»
Théoriquement, il devrait ressembler à ça :
#MIN_CONFIG(3.0.0)
AM_INIT_AUTOMAKE(exemple, 0.1)
AC_C_BIGENDIAN
AC_CHECK_KDEMAXPATHLEN
Ajoutez la ligne suivante :
AM_PATH_CPPUNIT(1.9.6)
Voilà maintenant vous pouvez retourner dans KDevelop, et ajouter la librairie $(CPPUNIT_LIBS) dans les options de la cible «tester»

Après ces petites modifications, il faut "purger" le projet (Menu Construire / Purger) puis le reconstruire (Menu Construire / Constuire le Projet)
4. Lanceur de tests
Ajoutez un fichier main.cpp à la cible «tester».
Chez moi, KDEvelop refuse de créer se fichier. Je suis d'abord obligé de le créer puis ensuite je l'ajoute en tant que fichier existant.
Son contenu est extrait de la documentation de cppunit :
#include <cppunit/CompilerOutputter.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
#include "test.h"
int main(int argc, char* argv[])
{
CppUnit::Test *suite =
CppUnit::TestFactoryRegistry::getRegistry().makeTest();
CppUnit::TextUi::TestRunner runner;
runner.addTest( suite );
runner.setOutputter(
new CppUnit::CompilerOutputter(
&runner.result(),
std::cerr
)
);
bool wasSucessful = runner.run();
return wasSucessful ? 0 : 1;
}
5. Créer des tests
Pour cela, on va créer une classe nommée Test. Donc dans KDevelop, on ajoutera à la cible «tester», 2 fichiers : test.h et test.cpp
test.h
#ifndef TEST_H
#define TEST_H
#include <cppunit/extensions/HelperMacros.h>
class Test : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE( Test );
CPPUNIT_TEST( monPremierTestUnitaire );
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
void monPremierTestUnitaire();
private:
int m_val;
};
#endif
test.cpp
#include "test.h"
CPPUNIT_TEST_SUITE_REGISTRATION( Test );
void Test::setUp()
{
m_val = 1;
}
void Test::tearDown() {}
void Test::monPremierTestUnitaire()
{
int lav = 2;
CPPUNIT_ASSERT_MESSAGE("forcement ça marche pas", m_val == lav);
}
6. Exécution
