J'aimerais gérer mon code source Arduino (projets et bibliothèques) sous contrôle de source avec des tests continus. Comment puis-je compiler automatiquement le code avec des outils d'intégration continue, pour m'assurer que chaque version se compile proprement? Dans le meilleur des cas, on devrait pouvoir configurer des builds pour plusieurs processeurs, éventuellement exécuter des tests unitaires et vérifier la taille binaire maximale.
16
avr-size
?Réponses:
La dernière version d'Arduino ide a une interface de ligne de commande pour construire et télécharger du code. Mais vous pouvez évidemment le faire par makefile et avrdude. Maintenant, vous avez compilé votre code MAIS vous avez besoin de tests. Comme le simulateur est complexe, incomplet, expansif et .. Juste une simulation, et parce que la puce est relativement bon marché, la construction d'une carte mère fera l'interaction matérielle ET vérifiera les résultats de sa manière la plus rapide et la plus simple. Sur ce tableau "spécial", vous pouvez télécharger quelque chose comme un interprète qui prend un test à partir du PC et l'exécute, quelque chose de similaire à firmata pour arduino. C'est du moins ainsi que je le construirais. Et pour autant que je sache, il n'y a pas de mise en œuvre connue de cela, même si je suis sûr que de nombreuses industries devraient le faire et probablement le faire.
la source
En tant que créateur de PlatformIO, je vous recommanderais de l'examiner. Il s'agit d'un générateur de code multiplateforme et d'un gestionnaire de bibliothèque manquant. Il peut créer le même code pour les nombreuses plates-formes et cartes de développement intégrées populaires.
PlatformIO peut être intégré à de nombreux systèmes populaires d' intégration continue (CI) (ou aux vôtres). Voir la documentation avec des exemples .
Examinons la
.travis.yml
configuration / le modèle pour Travis CI:Exemple
Intégration pour le
USB_Host_Shield_2.0
projet. Le.travis.yml
fichier de configuration:la source
Un exemple de configuration de l'intégration continue Jenkins pour le projet Arduino peut être trouvé ici: Intégration continue pour les systèmes embarqués
L'exemple montre comment créer et télécharger une image sur Arduino et exécuter des tests Web Selenium (le système testé est un serveur Web basé sur Arduino).
la source
J'ai écrit ce cadre unittest de test pour Arduino, car je ne pouvais pas trouver existant approprié. Bien que je ne l'ai pas écrit pour CI, ce serait bien pour le travail CI, car il ne nécessite aucun matériel mais peut être exécuté sur PC.
L'exécution des travaux CI sans le matériel a de bons et de mauvais côtés, les bons côtés étant
À la baisse, il y a:
la source
Je viens de mettre en place un résumé de taille décente en réponse à cette question connexe sur un cadre de test Arduino CI / unit que j'ai écrit et qui est enfin assez mature pour commencer à parler publiquement.
La
arduino_ci
gemme ruby prend en charge les tests locaux et l'intégration Travis CI (par exemple, ce travail de construction pour la bibliothèque Adafruit FONA ).Quelques exemples de la façon dont il s'intègre:
J'ai un problème créé pour signaler la taille de l'esquisse, mais aucun travail n'a été fait à ce sujet. Il est également possible que je puisse paralléliser les versions un jour, mais pour le moment, je ne sais pas exactement comment je procéderais. À l'heure actuelle, l'étape de construction la plus longue sur Travis CI est le téléchargement de l'IDE Arduino ... les tests parallèles ne mettront pas beaucoup de difficulté à cela si chaque travail doit faire cette étape.
la source
Je conseillerais d'utiliser le plugin eclipse arduino nommé sloeber sloeber.io dont je suis le chef de projet.
Il s'intègre au contrôle de version et permet de construire sur plusieurs plates-formes car il prend en charge plusieurs configurations.
Bien que ce ne soit pas encore une preuve idiote, j'ai documenté et démontré l'utilisation de tests unitaires de code arduino sur le PC local en utilisant le cadre de test Google.
Voici un lien vers un blog contenant une présentation de la façon dont vous pouvez le faire. http://blog.baeyens.it/#post25
la source