Este repositório contém a configuração de testes automatizados com Cypress, incluindo o envio de relatórios de teste por e-mail com anexos, utilizando Node.js e bibliotecas específicas.
- Pré-requisitos
- Como clonar o repositório
- Instalação do Cypress
- Funcionamento do
sendReport.js
e.env
- Relatório de Execução
- Scripts do repositório
- GitHub Actions
Certifique-se de ter instalado:
- Node.js (versão 14 ou superior)
- NPM (Node Package Manager)
- Cypress
-
Abra o terminal e execute o seguinte comando para clonar o repositório:
git clone https://github.com/gabsouza-dev/My_Cypress.git
-
Entre na pasta do projeto:
cd My_Cypress
-
Instale as dependências do projeto:
npm install
-
Instale o Cypress:
npm install cypress --save-dev
Este script realiza as seguintes tarefas:
- Verifica erros no relatório do Cypress: Lê o arquivo HTML gerado pelo Cypress para identificar falhas.
- Converte HTML em PDF: Caso erros sejam encontrados, converte o relatório HTML em um PDF formatado.
- Envia o relatório por e-mail: Usa o Nodemailer para enviar o PDF e um vídeo de teste por e-mail.
Bibliotecas necessárias:
- dotenv: Carrega as variáveis de ambiente do arquivo
.env
. - nodemailer: Envia e-mails.
- html-pdf-chrome: Converte HTML em PDF.
- path e fs (nativas do Node.js): Manipulam arquivos e diretórios.
Crie um arquivo .env
na raiz do projeto e adicione as seguintes variáveis:
EMAIL=seu-email@gmail.com
PASSWORD=sua-senha-ou-token
Atenção: Para contas do Gmail, ative a configuração de aplicativos menos seguros ou utilize um token de autenticação.
Ao executar o comando npm run test
, você verá o seguinte relatório no terminal:
> cypress_with_email@1.0.0 test
> cypress run && node sendReport.js
...
Tests: 6
Passing: 6
Failing: 0
Pending: 0
Skipped: 0
...
Relatório convertido para PDF com sucesso: C:\cypress_with_email\cypress\reports\pdf\relatorio-cypress.pdf
E-mail enviado com sucesso: 250 2.0.0 OK
-
Execução dos Testes:
- O Cypress executa todos os testes no arquivo
todo.cy.js
. - Mostra o número total de testes executados, quantos passaram e se houve falhas.
- O Cypress executa todos os testes no arquivo
-
Geração de Relatórios:
- O relatório JSON gerado pelo Cypress é convertido em um relatório HTML com detalhes dos testes.
- O relatório HTML é armazenado em
cypress/reports/html/index.html
.
-
Conversão para PDF:
- Caso erros sejam encontrados nos testes, o HTML é convertido em um arquivo PDF armazenado em
cypress/reports/pdf/relatorio-cypress.pdf
.
- Caso erros sejam encontrados nos testes, o HTML é convertido em um arquivo PDF armazenado em
-
Envio de E-mail:
- O relatório PDF e o vídeo de execução dos testes são enviados para o e-mail configurado no
.env
.
- O relatório PDF e o vídeo de execução dos testes são enviados para o e-mail configurado no
O arquivo package.json
possui o seguinte script para rodar os testes e enviar relatórios automaticamente:
"scripts": {
"test": "cypress run && node sendReport.js"
}
- Para rodar os testes e enviar o relatório, utilize:
npm run test
Este repositório suporta integração contínua com GitHub Actions. Certifique-se de configurar um workflow para rodar os testes com o script acima. Um exemplo de configuração YAML:
name: Run Cypress Tests
on:
push:
branches:
- main
jobs:
cypress-test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install dependencies
run: npm install
- name: Run Cypress Tests and Send Report
run: node sendReport.js
Com isso, o repositório estará pronto para rodar testes automatizados, gerar relatórios e enviar notificações por e-mail!