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):

L'installation
Par exemple, OS Windows, CubeMX et SW4STM32.
Installer ChocolateyOuvrez PowerShell.exe et exécutez:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Installez MinGWOuvrez PowerShell.exe et exécutez:
choco install mingw
Installer rubisOuvrez PowerShell.exe et exécutez:
choco install ruby
Installer gem ceedlingRedé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

Création de projet
Créer un projet à l'aide de CubeMXCré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).

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:

Ajouter un emplacement source et inclut Créez un nouveau constructeur:

Arguments -> test: tous

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

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

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

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:

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:

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:
