Skip to content
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

[Feature/Melhoria] Migrar do Jest para Vitest #1631

Closed
ErickCReis opened this issue Feb 20, 2024 · 3 comments · Fixed by #1642
Closed

[Feature/Melhoria] Migrar do Jest para Vitest #1631

ErickCReis opened this issue Feb 20, 2024 · 3 comments · Fixed by #1642
Labels
novo recurso Nova funcionalidade/recurso

Comments

@ErickCReis
Copy link
Contributor

Descrição

Hoje o TabNews conta com uma quantidade de testes relativamente grande, e como a maior parte deles são testes de integração rodar todos eles acaba demorando alguns minutos, isso impacta não somente o desenvolvimento mas também o ambiente de CI.

Com certeza podemos melhorar o fluxo de testes para agilizar alguma coisa, mas provavelmente não deve ser algo simples.

O Vitest compartilha praticamente a mesma API do Jest porém consegue ser muito mais rápido.


Fiz essa migração no meu fork do TabNews e a action demorou 2m 8s para finalizar, hoje esse tempo fica na faixa dos 4m.

Se for uma mudança que faz sentido para o TabNews posso abrir o PR para mostrar os detalhes do processo de migração.

Sugestão de implementação

No response

@ErickCReis ErickCReis added the novo recurso Nova funcionalidade/recurso label Feb 20, 2024
@Rafatcb
Copy link
Collaborator

Rafatcb commented Feb 20, 2024

Erick, obrigado pela sugestão e pela implementação no seu fork! Nunca usei o Vitest mas já ouvi falar bem, e pelos resultados que você obteve, parece ser uma ótima troca.

Estamos adicionando o eslint-plugin-jest no PR #1629, mas imagino que precisaríamos trocar pelo eslint-plugin-vitest. Consegue confirmar essa informação?

Seria interessante também testar isso. Tenho suspeitas que o Vitest lidaria bem com esse cenário, diferente do Jest.

@ErickCReis
Copy link
Contributor Author

Fiquei meio sem tempo esses últimos dias, assim que possível faço esses testes @Rafatcb .

Se por acaso outra pessoa quiser seguir com essa melhoria, pode ficar a vontade em pegar o que já implementei, a minha branch já está desatualizada e deve precisar de alguns ajustes depois da sincronização com a main.

@ErickCReis
Copy link
Contributor Author

Estamos adicionando o eslint-plugin-jest no PR #1629, mas imagino que precisaríamos trocar pelo eslint-plugin-vitest. Consegue confirmar essa informação?

Sim, foi necessário fazer a troca, existem diferenças entre as regras, mas preferi manter as configurações recomendas.

Seria interessante também testar isso. Tenho suspeitas que o Vitest lidaria bem com esse cenário, diferente do Jest.

Funcionou sem problema, só foi necessário adicionar um dependência que lida com os path alias do jsconfig.json


Atualizei minha branch e abri o PR com a troca.

Essa foi a diferença de tempo das actions:

Captura de Tela 2024-03-04 às 21 38 28

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
novo recurso Nova funcionalidade/recurso
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants