Hoje em “pitadas de Cypress“, aprenda como executar testes em modo headless
Após instalar o Cypress, é possível rodar o comando cypress open
para rodar testes em modo interativo, onde você pode assistir os testes executando, além de usar as funcionalidades de time-travel e automatic reload.
Porém, depois que os testes estão prontos, queremos poder executá-los de forma automática a cada mudança de código na aplicação em teste, tal como na criação e atualização de pull requests, após o merge para o ramo principal, ou mesmo após deployments em produção.
A parte boa é que além de poderosa, o Cypress é uma ferramenta simples.
Para executar os testes em modo headless, basta utilizar o comando cypress run
.
Além disso, digamos que você queira executar somente um arquivo específico, você pode passá-lo como argumento ao comando cypress run
(veja abaixo).
cypress run --spec cypress/integration/exemplo.spec.js
Obs.: É necessário prefixar os comandos acima com npx
aos executá-los localmente, caso estes não sejam npm scripts.
Obs.2: É recomendado criar npm scripts no arquivo package.json
com atalhos para a execução de tais comandos. Veja um exemplo abaixo.
{ "name": "projeto-exemplo", "version": "1.0.0", "description": "Projeto exemplo para publicação na série pitadas de Cypress", "main": "index.js", "scripts": { "test": "cypress run" }, "keywords": ['cypress.io', 'testing', 'cypress'], "author": "Walmyr Filho <wlsf82@gmail.com> (https://walmyr.dev)", "license": "MIT", "devDependencies": { "cypress": "^6.4.0" } }
Com o script test
acima, em vez de executar npx cypress run
no terminal, você pode executar somente npm test
, ou npm t
.
E você pode ter quantos scripts quiser. Por exemplo:
"scripts": { "cypress:open": "cypress open", "cypress:ci": "cypress run", "cypress:smoke-test": "cypress run --spec cypress/integration/smoke-test.spec.js" },
E para executar os scripts acima, basta rodar npm run cypress:open
, npm run cypress:ci
, ou npm run cypress:smoke-test
.
E aí, gostou?
Aguardo teu feedback.
Este conteúdo foi traduzido para inglês e pode ser encontrado no DEV Community.
Quer aprender automação de testes com Cypress na prática? Conheça meus cursos na Escola Talking About Testing, ou no Udemy.
Walmyr, eu consigo executar os arquivos de teste (.spec) na ordem que eu desejar?
ex: tenho dentro da pasta “Integration”
arquivo1.spec.js
arquivo2.spec.js
arquivo3.spec.js
e quando executo via cypress:ci quero que ele execute na sequencia de arquivo ex: 3 1 2?
Diego, qual o motivo de você precisar executar os testes em uma determinada ordem?
Testes automatizados devem ser independentes uns dos outros, e portanto, a ordem não deve importar.
Se seus testes são dependentes de uma certa ordem, o que você precisa é entender o que precisa para torná-los independentes e deixar de seguir tal má-prática. O quanto antes lidar com isso, mais cedo irá “colher os frutos”.
Ola, sera q poderiam me ajudar? Precisei fazer um teste dinamico onde preciso ver todos os status sejam 200 ou 500, no caso de 500 quero mandar pro slack. Mas o q quero saber msm por enquanto é como fazer isso aparecer no console enquando roda em cypress run?
Oi Priscila, quem sabe essa parte da documentação oficial do Cypress te ajude https://docs.cypress.io/guides/references/troubleshooting#Log-sources.