2D9PWBM.jpg
Accueil » Actualités » Premiers pas avec Cpputest pour les applications embarquées
|

Premiers pas avec Cpputest pour les applications embarquées



Les développeurs embarqués doivent utiliser un harnais de test. Cpputest est facile à utiliser et s’intègre dans presque tous les processus de construction.

Le test unitaire du code d’application dans les applications embarquées est un besoin fondamental que les développeurs embarqués négligent souvent. À première vue, mettre en place et faire fonctionner un harnais de test unitaire peut sembler compliqué. Cependant, les développeurs peuvent mettre en place et exécuter un environnement de harnais de test unitaire relativement rapidement. Cet article explorera Cpputest et comment les développeurs peuvent tirer parti des ressources existantes pour obtenir un environnement opérationnel rapidement.

Introduction à Cpputest

Cpputest est un framework de test basé sur C/C++ qui est utilisé pour les tests unitaires et le code de pilotage de test. En général, Cpputest est utilisé pour tester les applications C et C++. Le framework fournit aux développeurs un harnais de test qui peut exécuter des cas de test. Cpputest propose également un ensemble d’assertions qui peuvent être utilisées pour tester des hypothèses. Si le résultat n’est pas correct, le cas de test est marqué comme ayant échoué au test.

Cpputest fournit un framework open source gratuit permettant aux développeurs embarqués de créer des tests unitaires pour prouver le code de l’application. Avec un peu de travail supplémentaire, les développeurs peuvent même exécuter les tests sur cible s’ils le souhaitent. En général, j’utilise Cpputest pour tester mon code d’application qui existe au-dessus de la couche d’abstraction matérielle.

Installation de Cpputest

Plusieurs méthodes d’installation différentes peuvent être utilisées pour configurer Cpputest, disponibles sur le site Web de Cpputest. La première consiste à installer des pré-packagés installés sur Linux ou MacOS. (Si vous souhaitez installer sur Windows, vous devrez utiliser Cygwin ou un outil similaire). Alternativement, un développeur peut cloner le référentiel git Cpputest.

Si vous cherchez à démarrer rapidement et à expérimenter un peu, je vous recommande une approche différente. James Grenning a mis en place un projet de démarrage Cpputest qui contient tout ce dont un développeur a besoin pour démarrer. Le projet de démarrage comprend un fichier docker qui peut être chargé et une simple commande pour installer et configurer l’environnement. Si vous souhaitez suivre, clonez le projet de démarrage Cpputest dans un emplacement approprié sur votre ordinateur. Une fois que vous avez fait cela, vous pouvez suivre les instructions de James dans le fichier README.md ou suivre le reste de cette section.

Avant d’aller trop loin, il est essentiel de s’assurer que vous installez docker sur votre machine. Les utilisateurs de Mac peuvent trouver des instructions ici. Les utilisateurs de Windows peuvent trouver les instructions ici. Pour les utilisateurs de Linux, comme toujours, rien n’est facile. Le processus d’installation varie selon la version de Linux, vous devrez donc chercher un peu pour trouver la méthode qui vous convient.

Une fois que docker est installé et en cours d’exécution, un développeur peut utiliser son application de terminal pour accéder au répertoire racine du répertoire du projet de démarrage Cpputest, puis exécuter la commande :

docker-compose exécuter cpputest faire tout

La première fois que vous exécutez la commande ci-dessus, son exécution prendra plusieurs minutes. Après cela, la commande téléchargera les images Docker, clonera et installera Cpputest et créera le projet de démarrage. À ce stade, vous verrez quelque chose comme ce qui suit dans votre terminal :

Image 1.png

Comme vous pouvez le voir ci-dessus, il y a eu un échec de scénario de test dans tests/MyFirstTest.cpp à la ligne 23 avec un message ERROR: 2. Cela signifie que le projet de démarrage de Cpputest et James est installé et fonctionne correctement.

Tirer parti du conteneur Docker

La commande docker-compose run amène docker à charger le conteneur cpputest, puis à tout faire. Une fois la commande exécutée, elle quittera le conteneur docker. Dans la figure précédente, c’est la raison pour laquelle nous obtenons le ERREUR: 2. Il renvoie le code d’erreur pour l’état de sortie du conteneur docker.

Il n’est pas nécessaire d’utiliser constamment la commande « docker-compose run cpputest make all ». Un développeur peut également entrer dans le conteneur Docker et y rester en utilisant la commande suivante :

docker-compose exécuter –rm –entrypoint /bin/bash cpputest

En faisant cela, un développeur peut alors simplement utiliser la commande « make » ou « make all ». L’avantage de ceci est que cela rationalise un peu le processus et supprime le message ERROR renvoyé lors de la sortie de l’image docker de la commande d’origine. Ainsi, par exemple, si j’exécute la commande docker et make, la sortie du faisceau de test ressemble maintenant à ce qui suit :

image 2.png

Pour quitter le conteneur Docker, il me suffit de taper exit. Je préfère rester dans le conteneur docker, cependant, pour rationaliser le processus.

Test de conduite

Maintenant que nous avons configuré le projet de démarrage Cpputest, il est facile d’entrer et de commencer à utiliser le harnais de test. Nous devons supprimer le cas de test initial défaillant avant d’ajouter nos propres tests. Ce cas de test se trouve dans /tests/MyFirstTest.cpp. Le fichier peut être ouvert à l’aide de votre éditeur de texte préféré. Vous remarquerez à partir de la figure précédente que l’échec du test se produit à la ligne 23. La ligne contient les éléments suivants :

FAIL(« Votre test est en cours d’exécution ! Supprimez maintenant cette ligne et regardez votre test réussir. »);

FAIL est une assertion intégrée à Cpputest. Donc, la première chose à essayer est de commenter la ligne, puis d’exécuter la commande « make » ou « make all ». Si vous faites cela, vous verrez que le harnais de test s’exécute désormais avec succès sans aucun cas de test échoué, comme indiqué ci-dessous :

image 3.png

Vous pouvez maintenant commencer à créer vos cas de test unitaire en utilisant les assertions trouvées dans le manuel Cpputest. Le développeur peut décider de supprimer MyFirstTest.cpp et d’ajouter ses modules de test ou de commencer à implémenter ses cas de test. Cela dépend entièrement de votre objectif final.

Conclusion

Nous avons brièvement expliqué comment démarrer rapidement avec Cpputest. Travailler avec Cpputest est simple et les résultats peuvent être convaincants. Les développeurs peuvent tirer parti de leurs harnais de test et de leurs assertions pour vérifier que le code fonctionne comme prévu. Si quelque chose ne va pas, l’exécution du faisceau de test dirigera le développeur vers le cas de test défaillant et fournira le numéro de ligne du test échoué. Les harnais de test peuvent aider les développeurs à effectuer des tests de régression automatisés et à identifier rapidement les bogues dans leur code.

Les développeurs ne doivent pas nécessairement utiliser Cpputest. Il existe de nombreux faisceaux de tests unitaires. Cependant, les développeurs embarqués doivent utiliser un certain type de harnais de test, et Cpputest est facile à installer et à exécuter et à intégrer dans presque tous les processus de construction.

A lire également