Me gustaría administrar mi código fuente Arduino (proyectos y bibliotecas) bajo control de fuente con pruebas continuas. ¿Cómo puedo compilar automáticamente el código con herramientas de integración continua, para asegurarme de que cada versión se compila limpiamente? En el mejor de los casos, uno debería poder configurar compilaciones para múltiples procesadores, opcionalmente ejecutar pruebas unitarias y verificar el tamaño binario máximo.
programming
version-control
Jakob
fuente
fuente
avr-size
?Respuestas:
La versión más nueva de Arduino ide tiene una interfaz de línea de comandos para construir y cargar código. Pero obviamente puede hacerlo mediante makefile y avrdude. Ahora, ha compilado su código PERO necesita pruebas. Como el simulador es complejo, incompleto, expansivo y ... Solo una simulación, y debido a que el chip es relativamente barato, construir una bruja de tablero hará que la interacción HW Y compruebe los resultados es la forma más rápida y fácil. En ese tablero "especial" puedes subir algo como un intérprete que toma una prueba de la PC y la ejecuta, algo similar a firmata para arduino. Al menos así es como lo construiría. Y hasta donde sé, no hay una implementación conocida de esto, incluso si estoy bastante seguro de que muchas industrias deberían y probablemente lo harán.
fuente
Como creador de PlatformIO , le recomendaría que lo investigue. Es un generador de código multiplataforma y un administrador de bibliotecas perdido. Puede construir el mismo código para las muchas plataformas y placas de desarrollo integradas populares.
PlatformIO se puede integrar con muchos sistemas populares de Integración Continua (CI) (o el suyo propio). Ver documentación con ejemplos .
Veamos la
.travis.yml
configuración / plantilla para Travis CI:Ejemplo
Integración para
USB_Host_Shield_2.0
proyecto. El.travis.yml
archivo de configuración:fuente
Aquí puede encontrar un ejemplo de cómo configurar la integración continua de Jenkins para el proyecto Arduino: integración continua para sistemas integrados
El ejemplo muestra cómo construir y cargar imágenes en Arduino y ejecutar pruebas web Selenium (el sistema bajo prueba es un servidor web basado en Arduino).
fuente
Escribí este marco de prueba de unidad de prueba para Arduino, ya que no pude encontrar el adecuado existente. Si bien no lo escribí para CI, sería adecuado para el trabajo de CI, ya que no requiere hardware pero se puede ejecutar en la PC.
Ejecutar los trabajos de CI sin el hardware tiene lados buenos y lados malos, los lados buenos indican que
En el lado negativo hay:
fuente
Acabo de armar un artículo de tamaño decente como respuesta a esta pregunta relacionada sobre un marco de prueba de Arduino CI / unit que escribí que finalmente es lo suficientemente maduro como para comenzar a hablar públicamente.
La
arduino_ci
gema de rubí admite las pruebas locales y la integración de Travis CI (por ejemplo, este trabajo de compilación para la biblioteca Adafruit FONA ).Algunos ejemplos de cómo se integra:
Tengo un problema creado para informar el tamaño del boceto, pero no se ha realizado ningún trabajo al respecto. También es posible que algún día pueda paralelizar las compilaciones, pero por el momento no estoy exactamente seguro de cómo hacerlo. En este momento, el paso de compilación que lleva más tiempo en Travis CI es descargar Arduino IDE ... las pruebas paralelas no afectarán mucho si cada trabajo necesita hacer ese paso.
fuente
Yo recomendaría usar el plugin arduino eclipse llamado sloeber sloeber.io del cual soy el líder del proyecto.
Se integra con el control de versiones y permite construir en múltiples plataformas, ya que admite múltiples configuraciones.
Aunque todavía no es una prueba idiota, he documentado y demostrado que utilizo pruebas unitarias de código arduino en la PC local usando el marco de prueba de google.
Aquí hay un enlace a un blog que contiene una presentación de cómo puedes hacerlo. http://blog.baeyens.it/#post25
fuente