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:opennpm 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.

3 comentários em “Como rodar testes em modo headless com Cypress

  1. 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?

    1. 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”.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s