world tutorial significado hello example c++ unit-testing continuous-integration jenkins qa

tutorial - C++ Jenkins QA Stack/Herramientas



jenkins significado (3)

Actualmente estamos en el proceso de crear una pila de QA para su desarrollo en C ++ .

Ya tenemos varias instancias de Jenkins ejecutándose e hicimos muy buenas experiencias con el servidor de CI en combinación con otros lenguajes como java y php.

Lo que estoy pidiendo son consejos para las cadenas de herramientas que se pueden utilizar para el desarrollo de C ++ con Jenkins.

Más específico (ejemplos de java / php en llaves):

  • Un marco de prueba de unidades que prueba y produce informes de cobertura (jUnit / phpUnit)
  • Un verificador de directrices de codificación (checkstyle / phpCodeSniffer)
  • Algo PMD que detecta problemas potenciales en una base de código (pmd / phpmd)
  • ¿Más si es aplicable / necesario, pero esos 3 serían los básicos, supongo?

Bounty edit:

Si bien recibí una respuesta aceptable a mi pregunta, me pidieron que brindara más herramientas / opciones / razones para usar Jenkins para este proyecto.

En el pasado, he hecho experiencias subóptimas con herramientas comerciales en este sentido. (¿Qué? ¿Quieres GUARDAR esos informes? ¡Entonces necesitas comprar el complemento adicional de 10 mil Bucks / Year que puede generar gráficos de lujo para ti!) Podría estar equivocado aquí, así que por favor dime si lo estoy.

Pero principalmente estoy buscando una pila completa de herramientas para usar con Jenkins para el desarrollo de C ++ y QA


Actualmente estoy usando el plugin xUnit para proyectos C / C ++, y hasta ahora ha funcionado muy bien.

De acuerdo con la wikipage de cppunit, ya no se mantiene sino que se ha migrado a xUnit ( source ).


Usamos Jenkins con el marco de prueba de la unidad googletest .

  • Las ejecuciones de prueba producen xml jUnit-obediente.
  • Transmitido a la mayoría de los compiladores con los que es probable que se encuentre.

Al seguir mi propio enlace, encontré esto:

Cobertura continua del código con gcc, googletest y Hudson

Las tres primeras líneas del comando simplemente ejecutan la compilación. El comando en la línea 4 ejecuta la aplicación de prueba binaria que hemos creado y envía el resumen del resultado de la prueba a un archivo XML de formato junit.

Los dos últimos comandos son donde está la magia. Esto ejecuta la secuencia de comandos gcovr, una práctica secuencia de comandos python que convierte la salida de gcov a un archivo de estilo Cobertura XML.

Luego, debemos decirle a Hudson que busque en el espacio de trabajo de compilación de los archivos xml junit y coverage como una acción posterior a la compilación. Ahora, cuando ejecutamos la construcción, obtenemos buenos gráficos generales que muestran los resultados de las pruebas unitarias y la cobertura del código.


Usamos Jenkins con C & C ++. Estas son herramientas que hemos utilizado, y creo que puede serle útil. Todos ellos son utilizables con Jenkins:

  • Marco de pruebas unitarias - cppunit : salidas xml que se pueden alimentar directamente a Jenkins usando el plugin cppunit
  • Cobertura: gcov + gcovr produce buenos informes de cobertura
  • Comprobador de directrices de codificación: puede usar pclint y el complemento de advertencias para esto.
  • Detector de lío: No estoy seguro de lo que quiere decir con lío aquí, pero estamos usando PMD/CPD para la verificación de duplicación de código y NSIQ para la complejidad y LOC

También usamos cppcheck para el análisis estático.

¡Espero que ayude!