pengovbr / mod-sei-pen

Módulo de Integração ao Tramita.GOV.BR
30 stars 23 forks source link

Refatoração de testes #525

Open mateussbh opened 1 month ago

mateussbh commented 1 month ago

Sua solicitação de melhoria está relacionada a um problema? Por favor descreva. Hoje muitos testes estão demorando demasiado tempo para concluírem e estão muito verbosos, prejudicando a execução tempestiva do teste automatizado completo e piorando sua eficiência. Alguns chegam a demorar 5 a 10 minutos somente para chegar no ponto que efetivamente ocorreria o teste da funcionalidade em questão.


Descreva a solução que você gostaria Faz-se necessária a refatoração dos testes funcionais, de modo que esses passem a usar classes de fixtures e DTOs, e para que o teste gaste tempo prioritariamente testando o que está proposto no escopo, e deixando a cargo das Fixtures a inclusão de dados e a montagem do cenário que antecede ao teste em si da funcionalidade, objetivando testes mais limpos e fáceis de entender.

Para esta issue, foram selecionados os seguintes testes a serem refatorados, são eles:

11/07/24 Complemento da issue: (informações Mauro Costa, escrita por Andrea Melquiades)

Favor anexar evidência com a execução do teste com sucesso.

Descreva alternativas que você considerou N/A


Contexto adicional Exemplo de PR que contém a nova estrutura de fixtures, para inspiração: https://github.com/pengovbr/mod-sei-pen/pull/484

amelquia commented 1 month ago

Planning realizada. Card movido para a Sprint46.

amelquia commented 1 month ago

18/07/24 - Daily Executando os testes em cada versão, variáveis diferentes e alternando pequenos comportamentos nos testes Caso não haja necessidade de correções, a issue será encaminhada para revisão de código.

NinetiesPaul commented 1 month ago

Aberto #547 para resolução dessa issue.

Dos 4 testes listados apenas TramiteBlocoExternoLimiteAnexoTest e TramiteBlocoExternoLimiteTest precisaram de refatoração, pois os 4 testes ja estavam utilizando Fixtures e DTO, porem esses 2 testes tinham cenários sendo pulados aguardando refatoração da funcionalidade de Tramite de Bloco Externo.

Durante a tarefa detectei um comportamento durante o agendamento de envio de processos onde um processo tenta ser tramitado durante uma tramite passado em vias de ser finalizado, o que faz com o que o tramite falhe com a justificativa de que o processo já existe no destino. No presente momento esse bug está sendo investigado.

Por hora, para que seja feita a validação da refatoração desses dois testes é preciso que seja desativado PENAgendamentoRN :: processarTarefasEnvioPEN e PENAgendamentoRN :: processarTarefasRecebimentoPEN em Infra > Agendamentos, e que seja executado o comando make tramitar-pendencias-simples enquanto o teste está rodando, para que seja feita a tramitação manual

SUCESSO TramiteBlocoExternoLimiteTest

SUCESSO TramiteBlocoExternoLimiteAnexoTest

amelquia commented 1 month ago

22/07 - Planejamento da Sprint 47. Issue com status "Revisão Técnica" pelo @Mauro1706 foi movida para a sprint 47.

mateussbh commented 1 month ago

Aberto #547 para resolução dessa issue.

Dos 4 testes listados apenas TramiteBlocoExternoLimiteAnexoTest e TramiteBlocoExternoLimiteTest precisaram de refatoração, pois os 4 testes ja estavam utilizando Fixtures e DTO, porem esses 2 testes tinham cenários sendo pulados aguardando refatoração da funcionalidade de Tramite de Bloco Externo.

Durante a tarefa detectei um comportamento durante o agendamento de envio de processos onde um processo tenta ser tramitado durante uma tramite passado em vias de ser finalizado, o que faz com o que o tramite falhe com a justificativa de que o processo já existe no destino. No presente momento esse bug está sendo investigado.

Por hora, para que seja feita a validação da refatoração desses dois testes é preciso que seja desativado PENAgendamentoRN :: processarTarefasEnvioPEN e PENAgendamentoRN :: processarTarefasRecebimentoPEN em Infra > Agendamentos, e que seja executado o comando make tramitar-pendencias-simples enquanto o teste está rodando, para que seja feita a tramitação manual

SUCESSO TramiteBlocoExternoLimiteTest

SUCESSO TramiteBlocoExternoLimiteAnexoTest

@Mauro1706 , Este comportamento que o @NinetiesPaul já foi corrigido quanto ao agendamento e tramite de blocos, certo?

De qualquer modo, não consegui testar o TramiteBlocoExternoLimiteAnexoTest e TramiteBlocoExternoLimiteTest. No aguardo da atualização da issue. Favor não esquecer da versão 4.1 também. Obrigado.

NinetiesPaul commented 1 month ago

Aberto PR #564 da issue #559, neste PR estão os refatoramentos pendentes dos testes dessa issue.