Como rodar todos os testes pelo poetry usando a linha de comando
Uma coisa que eu sempre gostei foi de atalhos curtos para rodar comandos complexos. São mais rápidos de digitar (:D) e mais simples de lembrar. O comando poetry new [meu-projeto] provê uma estrutura básica para um novo projeto. Contudo, o poetry, por padrão, não possui um comando pronto que automatiza a execução dos testes, pelo menos não de maneira intuitiva e automática. Como precisei procurar, resolvi escrever essa dica aqui pra ajudar.
Para deixar a execução de testes muito mais simples, faz-se necessário uma pequena configuração extra, de maneira que os testes passem a rodar com um poetry run tests, por exemplo.
Primeiramente, precisamos criar o código que execute o comando do python e encapsulá-lo em uma função. Sabendo disso, criamos o arquivo scripts.py na raiz do projeto com o seguinte conteúdo:
import subprocess
def tests():
subprocess.run(["python", "-u", "-m", "pytest"])
Depois basta dizer pro poetry que queremos um novo comando chamado tests e que esse comando executa a função tests.
No arquivo pyproject.toml, logo antes de [build-system], basta adicionar o seguinte trecho:
[tool.poetry.scripts]
tests = "scripts:tests"
E that’s it! Agora basta rodar poetry run tests para que o poetry rode todos os arquivos de testes salvos na pasta tests/*.
Massa, né?!
Se gostou do post ou ele foi útil de alguma forma eu adoraria saber. Considere também me seguir no GitHub e/ou nas redes sociais. Meu muito obrigado pra quem leu até aqui!