Que ondas con la música sexy del video…
Introducción
¿Qué es Cypress?
¿Qué es End-to-End Testing?
Primeros pasos
Configurando el proyecto inicial
Integrando Cypress al proyecto
La consola de Cypress
Mi primer test
Implementando tests
Principales comandos
Interactuando con elementos
Aserciones
Hooks
Variables, Fixtures y Alias
Conceptos avanzados
Ejecución de scripts
Comandos personalizados
Variables de entorno y configuración
Screenshots
Stubs, Spies y Clocks
Depuración de los tests
Headless testing
Bonus
Testing condicional
Plugins
Intellisense
Seguridad
Usando el dashboard de Cypress
Conclusiones
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Para correr finalmente nuestros propios tests, necesitaremos ejecutar en paralelo los scripts que hemos creado tanto para levantar el servidor de pruebas como para correr la consola de Cypress. Será necesario instalar una nueva dependencia de desarrollo llamada npm-run-all
.
Luego de instalada, modificamos el script test:dev
para que haga uso de ella y ejecute cypress:open
en paralelo con los scripts build:test
y test:server
:
...
""test:dev"": ""npm run build:test && run-p --race test:server cypress:open""
...
Usamos el parámetro --race
para que al terminar la ejecución de Cypress, termine también el servidor de pruebas.
Tests
Nuestros tests los crearemos en la carpeta /integration
, cada set de pruebas en un archivo de JavaScript individual que identificaremos como
.
Cypress trae integradas las funcionalidades de mochaJS y las aserciones de ChaiJS, por lo que si ya has trabajado antes con esto te va a resultar muy familiar.
La definición básica del test es la siguiente:
describe('Nombre del test', () => {
it('Descripción de la prueba', () => {
// --- comandos de cypress
})
})
Mientras que describe(...)
define y describe todo el conjunto de pruebas, it(...)
nos permite definir cada test individual.
En el archivo cypress.json, que veremos en detalle más adelante en el curso, se encuentran las configuraciones de Cypress entre las que se pueden definir variables globales que serán accesibles en todos los scripts. Esto es muy conveniente para datos como la url base del servidor de pruebas.
Aportes 8
Preguntas 3
Que ondas con la música sexy del video…
Me parece interesante creo que es mucho mas fácil la configuración de cypress que ruby, python con selenium y algunos otros que he probado.
Para poder tener IntelliSense e Intelligent code completion en VS Code agregué al path del proyecto el archivo:
jsconfig.json
E incluí lo siguiente:
…
{
"include": [
"./node_modules/cypress",
"test/cypress/**/*.js"
]
}
…
Posteriormente n el archivo de configuración de cypress:
cypress.json
y agregue la propiedad:
"$schema": "https://on.cypress.io/cypress.schema.json"
Para mayor referencia les dejo el link:
Saludos
Alguien sabe qué pasa aquí?
el error de la derecha completo es este:
Error: Webpack Compilation Error
./cypress/integration/login.spec.js
Module build failed (from /home/eldani/.cache/Cypress/5.2.0/Cypress/resources/app/packages/server/node_modules/babel-loader/lib/index.js):
Error: Plugin/Preset files are not allowed to export objects, only functions. In /home/eldani/Documents/main/study/platzi-master/semana-6/end-to-end-testing/platzi-posts/node_modules/babel-preset-stage-2/lib/index.js
👏
Excelente… Eres buen tutor brother
Cuando instalo npm-run-all me sale esto en la consola: “found 14 vulnerabilities (6 low, 5 moderate, 3 high)” y me sugiere ejecutar npm audit fix para solucionarlo, el problema es que si ejecuto eso, al parecer me desinstala pushstate-server y las tareas dejan de funcionar. Alguna idea de como solucionarlo?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.