Maiquel Leonel

Como rodar todos os testes pelo poetry usando a linha de comando

Como rodar todos os testes pelo poetry usando a linha de comando
Setup de terminal e execução automatizada de testes

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/*.

Execução dos testes com o comando customizado no Poetry
Execução dos testes com o comando customizado no Poetry

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!

Maiquel Leonel
Maiquel Leonel
Principal Engineer & Cloud Architect. Focado em arquitetura de software, IA agêntica, governança de código (SDD/Harness) e FinOps de inferência local. Menos hype, mais fundamentos e cicatrizes reais de produção.