Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada...

24
T00370608PFP002 – ON A/C RADAR TEST SET training notes Integración CppUnit /Jenkins “Automatizando el testing” 31 de Octubre de 2012

Transcript of Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada...

Page 1: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

T00370608PFP002 – ON A/C RADAR TEST SET training notes

Integración CppUnit/Jenkins

“Automatizando el testing”

31 de Octubre de 2012

Page 2: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Suponed que tenemos la siguiente clase

2

Page 3: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Ahora, suponed que queremos crear una clase cpp unit para probarla

3

Page 4: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Para automatizar el testing necesito hacer varias cosas:

Primero, generarme una librería con la clase a testear.

Segundo, un nuevo proyecto de tipo HelloWorld, que contendrá la clase

de cppUnit

Configuro el main para que se ejecuten los test de la clase que he definido

4

Page 5: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

El main, podría quedar algo así

5

Page 6: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Fijaos aquí…

6

Page 7: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto:

7

Page 8: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Pero esto no lo entiende Jenkins, hay que traducírselo para que lo entienda

8

Page 9: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

El fichero convertido ya tiene formato Junit, quedaría así.

9

Page 10: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Ya solo quedaría configurar Jenkins para ejecutar el test, recoger el resultado y presentar la información.

10

Page 11: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

¿Y si además de los resultados, quiero tener datos de la cobertura alcanzada?

11

Page 12: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Pues tengo que indicar al compilador gnu que quiero datos de cobertura, con gcov. En eclipse …

12

Page 13: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

13

Pues tengo que indicar al compilador gnu que quiero datos de cobertura, con gcov. En eclipse …

Page 14: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Esto generará, cuando se ejecute el programa …

14

Page 15: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Esta información hay que traducirla para que la entienda Jenkins, para ello tenemos que generar un XML con los datos de cobertura. Esto se consigue con un script python llamado GCOVR.

15

Page 16: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Una vez generado el XML, ya podemos automatizar en Jenkins los datos de cobertura.

16

Page 17: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Y se produce la magia…

17

Page 18: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Además, los datos de cobertura son accesibles desde el propio eclipse

18

Page 19: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

19

No se vayan todavía, aún hay más…

Page 20: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

¿Y si además queremos detección de memory leaks?

20

Page 21: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

¿Y si además queremos detección de memory leaks?

Page 22: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Integración valgrind jenkins

22

Page 23: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Ahora si

23

Page 24: Integración CppUnit/Jenkins - WordPress.com...Ese fichero XML va a contener el resultado de cada ejecución. En nuestro ejemplo se generaría esto: 7 ... ¿Y si además queremos detección

Ruegos y preguntas

24