Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Headless testing

18/24
Recursos

Cuando estamos realizando End-to-end testing en un ambiente real de producción, por lo general no tenemos acceso a la interfaz gráfica del servidor. En estos casos se hace necesario entonces tener la posibilidad de ejecutar todo el flujo de pruebas como lo hemos definido, pero sin la simulación visual de lo que sucede en el navegador durante todo el proceso. Para esto, Cypress dispone de la funcionalidad Headless testing.

El cambio necesario para realizar un Headless testing es básicamente la sustitución del argumento open por run, en la ejecución del script de Cypress en las configuraciones del archivo package.json, quedando los scripts de la siguiente manera:

""cypress:run"": ""cypress run --project ./test"",
...
""test"": ""npm run build:test && run-p --race test:server cypress:run"",

Al ejecutar npm run test ya no se ejecutará en el test runner de Cypress sino en un navegador interno sin interfaz gráfica; sin embargo, Cypress registrará toda la ejecución en un video que guardará en la carpeta /videos en el sistema de archivos del servidor además de mostrar todas las salidas del proceso en la terminal de línea de comandos.

Al igual que como sucede con los screenshots la recomendación es que la carpeta /videos se excluya del repositorio Git a través del .gitignore para evitar un uso innecesario de recursos adicionales del servidor.

Aportes 6

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Si alguien trabaja en Docker no olviden instalar estas extensions que se necesitan

Ubuntu/Debian

apt-get install libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1
libasound2 libxtst6 xauth xvfb

CentOS

yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2
nss libXScrnSaver alsa-lib

Que curioso, a diferencia de los screenshots tomados en modo dev, que almacena todas las capturas sin sobreescribir nada, cuando lo ejecutamos de forma headless sí sobreescribe el directorio asociado al spec. Será una optimización pensando en los recursos del server donde corra el flujo de CI? 🤔
 
Por otro lado, que prolijo el log que genera y ni hablar del video, que por lo que vi en las settings del cypress.json, incluso se puede modificar la compresión:

{
  "videoCompression": 32
}

crea Cy:run

👏

puedo hacer pruebas unitarias con cypress…?
Sería interesante tener una sola herramientas para mis pruebas unitarias de mis APIs…?
Se que el curso es de end to end testing, creo q si tenemos la posibilidad de hacer todo con cypress, con comandos separados. Así no tendría que aprender jest. Ya que apenas me estoy iniciando con las pruebas.

Tengo problemas con los vídeos generados. Al reproducir los vídeos, estos corren hasta cierta duración, después se quedan colgados y no muestran el proceso como tal.