Ceedling + Eclipse ou tests unitaires pour microcontrĂ´leurs

image


Programmation de microcontrôleurs? En savoir plus sur TDD ou simplement fatigué de chercher des bogues et de réécrire le code à nouveau?

Ami, essayez les tests.

Cet article montrera comment intégrer Ceedling dans Eclipse / SW4STM32 afin que le code passe par les tests lors de chaque build.

Qu'est-ce qui m'a poussé à écrire un article?
Je n'ai pas pu trouver d'instructions détaillées, mais je n'ai pas pu suivre les instructions trouvées, en raison de leur contenu superficiel ou obsolète (par exemple, ceedling n'est plus exécuté par la commande rake).

Les instructions pour intégrer ceedling dans eclipse des développeurs sont très maigres et la seule instruction trouvée a été payée (c'était la dernière goutte):
image

L'installation


Par exemple, OS Windows, CubeMX et SW4STM32.

Installer Chocolatey
Ouvrez PowerShell.exe et exécutez:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

image

Installez MinGW
Ouvrez PowerShell.exe et exécutez:
 choco install mingw 


Installer rubis
Ouvrez PowerShell.exe et exécutez:
 choco install ruby 


Installer gem ceedling
Redémarrage de PowerShell!

Ouvrez PowerShell.exe et exécutez:
 gem install ceedling 


Bilan de santé
Ouvrez PowerShell.exe et exécutez:

 cd / 

 ceedling new test_ceedling 

 cd test_ceedling 

 ceedling test:all 

image

Création de projet


Créer un projet à l'aide de CubeMX
Créez un projet dans CubeMX sous toolchain / ide SW4STM32.

Exécutez CubeMX au nom de l'administrateur pour créer un projet dans le répertoire C: /

Structure de l'application -> avancé (sinon le projet ne se rassemble pas immédiatement).

image

Nous initialisons ceedling dans le projet:

 cd / 

 ceedling new test_ceedling 

Créons la structure suivante et c./h dans le projet. fichiers, ajoutez les chemins d'accès à project.yml:

image

Ajouter un emplacement source et inclut
image

image

Créez un nouveau constructeur:

image

Arguments -> test: tous

image

Lancement


Créez une autre fenêtre de console pour les tests:

image

Changez-le pour afficher les résultats du générateur Ceedling:

image

Appuyez sur ctrl + B et voyez les résultats du test dans la console:

image

Ajouter des périphériques


Souvent, le résultat d'une fonction dépend de composants externes.

En plus de l'outil de génération de test, Unity, Ceedling prend en charge CMock, un générateur d'objets simulés et de talons.

Imaginez que notre calculatrice lors du calcul de la différence,

 a - b 

si le bouton est enfoncé, il est considéré différemment.

 b - a 

Dans ce cas, nos tests peuvent ressembler Ă  ceci:

image

La fonction de vérification du clic sur le bouton a été déclarée mais non implémentée (non écrite).

Appuyez sur ctrl + B et voyez les résultats du test dans la console:

image

Dans ce cas, nous avons créé une imitation d'un bouton, au lieu duquel il peut y avoir UART, SPI, I2C, etc.

Conclusion


Maintenant, avec chaque assemblage d'application à droite dans le coin, vous pouvez observer le résultat des tests effectués:

image

Source: https://habr.com/ru/post/fr441268/


All Articles