6
votes

Écrire un makefile.am pour appeler des tests d'unités Googletest

J'essaie d'ajouter mon premier test d'unité à un projet open source existant. Plus précisément, j'ai ajouté une nouvelle classe, appelée audio_manager: xxx pré>

J'ai créé une structure de répertoire SRC / test qui reflète la structure des fichiers de mise en œuvre et a écrit mon googletest tests de l'unité: p> xxx pré>

maintenant, j'essaie de mettre en place mon Makefile.am Pour compiler et exécuter le test de l'unité: P>

src/audio/Makefile.am


0 commentaires

3 Réponses :


9
votes

Si le projet existant a déjà une structure de test en place, vous devez simplement ajouter: xxx pré>

aux tests existants / makfile.am. Si le projet existant n'a pas de structure de test en place, vous devriez courir crier pour les collines. P>

Si vous courez pour les collines n'est pas acceptable, il y a un peu de travail pour obtenir la structure de test en place , mais ce n'est pas insurmontable. Vous préférez peut-être faire des tests un frère de SRC, mais ce n'est pas nécessaire. Il est probablement plus facile de commencer par un makefile frais.am plutôt que de copier le maquillage.am de SRC, mais peut-être pas. Peut-être que tout ce que vous devrez faire est de modifier des lignes de forme: p> xxx pré>

à p> xxx pré>

Ajouter la ligne p> xxx pré>

changer le nom de audio_manager.cc à test-audio-manager.cc (ce n'est pas strictement nécessaire, mais aidera la maintenabilité. J'ai changé _ à l'excès de personnel Préférence) et ajoutez un P>

SUBDIRS = tests/audio


1 commentaires

Kudos à vous d'avoir tout le monde là-bas pour commencer avec :)



7
votes

La réponse de William m'a eu lieu où j'avais besoin d'aller. Juste pour le bien de la communauté, voici ce que j'ai fini par faire:

  1. J'ai déplacé mes tests dans la structure de répertoire principale et le test préparé, selon les suggestions de William. Li>
  2. J'ai ajouté quelques lignes à SRC / Audio / Makefile.am Pour activer les tests d'unité: P>

    # Unit tests
    noinst_PROGRAMS = test_audio_manager
    
    test_audio_manager_SOURCES  = $(libadonthell_audio_la_SOURCES) test_audio_manager.cc
    test_audio_manager_CXXFLAGS = $(libadonthell_audio_la_CXXFLAGS)
    test_audio_manager_LDADD    = $(libadonthell_audio_la_LIBADD) -lgtest
    
    TESTS = test_audio_manager
    
  3. MAINTENANT MAINTENANT, COURANT "Vérifier" incendie les tests de l'unité! P> LI> ol>

    Tout cela peut être vu ici: http://github.com/ KSTERKER / ADONTHELL / COMMITE / AACDB0FE22F59E61EF0F5986827F180C56AE9F3 P> P>


0 commentaires

2
votes

Compléter les informations dans les autres réponses, vous pouvez également spécifier plusieurs tests sur Tests .

Quel que soit le nombre de tests que vous spécifiez, vous n'avez pas vraiment à les spécifier deux fois, à la place. Il suffit de définir tests sur $ (check_programs) - Cela peut aider à empêcher une situation accidentelle d'ajouter votre test à check_programs mais oublier de l'ajouter à TESTS , Causer votre nouvel essai à ajouter à la construction, mais n'étant jamais exécuté par faire vérifier : xxx

... ou de faire la même chose avec plusieurs tests: xxx


0 commentaires