1
resposta

[BUG] Bug nos testes unitários

Boa tarde, pessoal.

Vi que tem um tópico similar sobre o mesmo problema mas decidi postar aqui porque achei a solução.

Ao rodar os testes com "docker-compose run test" ele simplesmente joga o erro de não conseguir rodar os inserts do populate.sql. Eu de primeira achei bem estranho. Pensei que poderia ser alguma coisa de OS, já que estou usando MacOS, mas estava rodando dentro do container em Alpine, então não faz sentido.

A solução é até bem boba! Só substituir TODOS os "(aspas duplas) do populate.sql para '(aspas simples). É isso!

Mas fiquei entrigado do por quê. Meu palpite é que alguma das ferramentas envolvidas no processo passou a interpretar esse "(aspas duplas) como o fim de uma linha de comando e aí ele se perde todo. Talvez devido alguma atualização desde quando foi feito o curso. Mas achei bem estranho isso não rolar para todo mundo também.

Fiz um teste com sqlite3 local do Mac e foi mesmo com as "(aspas duplas), mas quando rodo no alpine dá ruim. Mas se eu ignorar isso e fazer o Pull Request, no Github Actions roda perfeitamente hahaha. Coisa de doido. Mas enfim, substituindo para '(aspas simples) funciona certinho em todos os cenários.

1 resposta

Olá, Lucas! Como vai?

Agradeço por compartilhar sua solução com todos nós! Isso é o que torna a comunidade de desenvolvimento tão incrível.

Sobre o seu questionamento, você está correto em seu palpite. As aspas duplas e simples são interpretadas de maneira diferente em diferentes sistemas operacionais e ferramentas.

No caso do SQLite, as aspas duplas são usadas para identificar nomes de colunas e tabelas, enquanto as aspas simples são usadas para identificar strings. Portanto, dependendo de como você está usando as aspas em seu arquivo SQL, isso pode causar problemas.

No entanto, no caso do Alpine (uma distribuição Linux), as aspas duplas têm um significado diferente. Em vez de serem usadas para identificar nomes de colunas e tabelas, elas são usadas para delimitar strings, assim como as aspas simples.

Portanto, quando você tenta executar seu arquivo SQL no Alpine, ele pode estar interpretando suas aspas duplas como o fim de uma string, o que causaria o erro que você está vendo. Quanto ao motivo pelo qual isso não acontece com todos, pode ser devido a diferenças nas versões das ferramentas que estão sendo usadas ou nas configurações do sistema operacional.

Espero que isso esclareça um pouco o mistério para você. E novamente, obrigado por compartilhar sua solução conosco!

Bons estudos!