-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testes e2e utilizando playwright #1687
Conversation
@nobregao is attempting to deploy a commit to the TabNews Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nobregao, obrigado pelo PR! 💪💪💪
Scripts adicionados:
test:e2e
executa os testes automatizadostest:e2e:ui:
utiliza ui mode em que é possível executar e debugar scripts e visualizar html por etapa de execução.
Os scripts ainda não foram adicionados, então vejo que é um trabalho em andamento, certo? Vi que você mudou agora o PR para draft, então vamos manter assim enquanto a implementação não estiver funcional. 🤝
Olhei por cima a parte de configuração e já deixei alguns comentários no código. 👍
b0090c2
to
4d2356c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Muito obrigado pela contribuição, @nobregao!
Além dos comentários que deixei, acho importante adicionar no README
como executar esse tipo de teste, o modo watch
, e como testar arquivos específicos. Algo como a documentação que temos hoje para os outros tipos de teste (veja aqui). Sugiro deixar isso para o final, comentei apenas para não esquecermos.
Um exemplo de link que acredito ser importante de constar nas orientações é o [TIP] Run Playwright Tests on unsupported Linux distributions.
Outro ponto, não acham melhor seguirmos a lógica dos testes de integração, onde um arquivo representa um tipo de ação, ao invés de um arquivo representar um tipo de usuário? Os testes user-default
podem acabar ficando bem extensos, já que o usuário padrão pode fazer várias coisas diferentes, além de não estar claro que tipo de comportamento foi testado pelo nome do arquivo.
tests/e2e/user-anonymous.spec.js
Outdated
let title = await homePage.getTitle(); | ||
await expect(title).toBe(titleHome); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Se isso for apenas para aguardar a página carregar, como perguntei em outro comentário, então realizando as alterações propostas a verificação do title
pode ficar em um único teste, e os outros testes usarão apenas o método para aguardar o carregamento.
E, se isso for feito, não precisamos mais da variável titleHome
.
* @param {import('@playwright/test').Page} page | ||
* @param {string} postTitle | ||
*/ | ||
constructor(page, postTitle) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
O construtor precisa receber o postTitle
?
tests/e2e/user-anonymous.spec.js
Outdated
await recentPage.goRelevantTab(); | ||
}); | ||
|
||
test('should be login like user default', async ({ page }) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alguns nomes de testes ficaram estranhos. Desse arquivo, acredito que só esse precise ser melhorado, mas do outro arquivo, é preciso rever todos. Isso não é urgente, pode deixar para o final porque assim já garante que todos os testes estarão adequados (tanto os atuais quanto os novos, caso você crie mais nesse PR).
Seguindo o padrão dos outros testes desse arquivo, aqui poderia ser: test('should be able to login'
.
This reverts commit 76ea643.
ffb2b3e
to
64927e3
Compare
This reverts commit e1b2682.
@nobregao, vamos combinar de abrir um novo PR quando a solução estiver mais madura e pronta para ser revisada? 🤝 Enquanto isso, qualquer questão pode ser tratada pela issue #1667, e quem quiser acompanhar esse desenvolvimento mais de perto, commit a commit, pode dar watch no seu repositório: https://github.com/nobregao/tabnews.com.br Não interpretem como desinteresse na solução, pois acreditamos que testes e2e são muito importantes. Mas vou fechar o PR atual pelos seguintes motivos:
|
Mudanças realizadas
Implementado testes de integração e2e com playwright
1.43.1
utilizando o padrão page object.Scripts adicionados:
test:e2e
executa os testes automatizadostest:e2e:ui:
utiliza ui mode em que é possível executar e debugar scripts e visualizar html por etapa de execução.Objetivo
Seguir com discussão entre escolha de tecnologias para testes e2e da issue #1667
Foram incrementando poucos cenários para analisar: tempo de execução, sintaxe e configuração de dependências
A ideia é a partir da escolha entre as tecnologias incrementar cobertura da suíte de testes com cenários importantes abrangendo os 3 perfis de usuários (anônimo, padrão e privilegiado)
Atividade para esse PR
Testes
Cenários implementados por perfil de usuário
Anônimo (Usuário não logado)
Padrão (Usuário sem privilégios)
Tipo de mudança
Checklist: