Skip to content
Latchkey

pytest vs nose: test runners Python comparados

O pytest é o test runner Python moderno e ativamente mantido; o nose (e o nose2) é mais antigo, com o nose original sem manutenção.

O pytest é o framework de teste de facto do Python, com testes concisos baseados em assert, fixtures poderosas, parametrização e um vasto ecossistema de plugins. O nose estendia o unittest com descoberta de testes e foi amplamente usado, mas o nose original está sem manutenção e o nose2 tem atividade limitada. Projetos novos usam pytest; suítes nose antigas costumam ser migradas.

pytestnose
ManutençãoAtivanose sem manutenção; nose2 limitado
FixturesPoderosas, componíveisBásicas
PluginsGrande ecossistemaPoucos
Asserçõesassert puro (reescrito)Estilo unittest
Melhor paraTodos os novos projetos PythonApenas suítes legadas

Em CI

O pytest se integra de forma limpa ao CI, com relatórios ricos, paralelismo com xdist e plugins de coverage. O nose funciona, mas carece de manutenção e de plugins modernos. Para qualquer novo projeto, o pytest é a escolha clara; migrar suítes nose para pytest é geralmente recomendado. Faça cache do ambiente Python para instalações rápidas de qualquer forma.

Acelere

Faça cache do ambiente pip/poetry e paralelize com pytest-xdist. Ambos rodam em CI runners; managed runners mais rápidos encurtam as etapas de instalação e teste.

O veredito

Use pytest para qualquer novo projeto Python - é moderno, mantido e muito mais rico. O nose só importa para suítes legadas que você ainda não migrou; planeje essa migração para pytest.

Guias relacionados