Skip to content

RenanCardoso/serverest-cypress

Repository files navigation

Testando aplicação ServeRest com Cypress

Olá, seja muito bem-vindo(a)!

Fiz este projeto de exemplo para demonstração de testes automatizados de GUI e API escritos com Cypress utilizando a aplicação ServeRest que foi desenvolvida e é mantida por Paulo Gonçalves.

Pré-requisitos

Para baixar e rodar este projeto, você precisará das seguintes tecnologias instaladas em seu computador:

  • git (usei a versão 2.47.0 enquanto escrevia este documento)
  • Node.js (usei a versão v20.17.0 enquanto escrevia este documento)
  • npm (usei a versão 10.8.2 enquanto escrevia este documento)

Obs: Ao instalar o Node.js, o npm é instalado automaticamente.

Instalação

Após clonar o projeto, execute o comando npm install (ou npm i para a versão curta) para instalar as dependências de desenvolvimento.

Consumindo o ServeRest

O ServeRest está disponível de forma online, no npm e no docker.

Todas essas opções possuem as mesmas rotas, regras, dados pré-cadastrados e documentação. Escolha a melhor opção para você.

No ambiente online os dados cadastrados são removidos diariamente, enquanto que no local basta reiniciar o ServeRest.

Para facilitar a execução do projeto por terceiros, ele foi configurado por padrão para utilizar a aplicação de forma online. Porém, pode-se utilizar a opção de ambiente local caso precise que os dados não sejam alterados por outro usuário.

Acesse https://serverest.dev para visualizar a documentação e as rotas disponíveis.

Executando os testes

Neste projeto, você pode rodar os testes em modo interativo ou modo headless.

Modo headless

Execute o comando npm test (ou npm t para a versão curta) para rodar a todos os testes em modo headless.

Modo interativo

Execute o comando npm run cy:open para abrir a Cypress App e rodar os testes.

Análise estática

Para análise estática de código estou utilizando a biblioteca eslint-plugin-cypress. Para realizar a análise estática de código, basta rodar o comando npm run lint ou execute diretamente o comando npm run lint:fix para realizar a análise e corrigir automaticamente os problemas encontrados.

CI/CD

Para entregar o código em produção com rapidez e segurança, foi utilizado as seguintes soluções:

Conventional Commit

Estou utilizando a biblioteca commitlint para validar se as mensagens de commit estão seguindo os padrões estabelecidos por Conventional Commit.

A especificação do Conventional Commits é uma convenção simples para utilizar nas mensagens de commit. Ela define um conjunto de regras para criar um histórico de commit explícito, o que facilita a criação de ferramentas automatizadas baseadas na especificação.

Husky

Estou utilizando a biblioteca husky para executar as ações em git hooks, como pre-commit e commit-msg;


Feito com ☕ e ❤️ por Renan.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published