Livre e de código-aberto (MIT), é hoje uma alternativa mais popular que o próprio unittest (que faz parte da standard lib). Rico em plugins, com ele é possível escrever testes em diferentes formatos, para diferentes fins.
O Pytest já é listado como uma dependência de projetos criados via poetry. Portanto, um poetry install é o suficiente para instalá-lo:
Vamos ativar o virtualenv com o Poetry, para que assim as instruções daqui para frente sejam as mesmas para os não-usuários da ferramenta:
Por padrão, o Pytest espera que o seus arquivos de teste comecem com test_, ou terminem com _test.py. Customizações são possíveis, mas o padrão já nos atende.
Como é possível notar, o output é um pouco mais verbose. Mas o ponto alto aqui é que, mesmo que o seu projeto esteja utilizando unittest como biblioteca de testes, o test runner do pytest ainda assim consegue identificar e executá-los.
E se quisermos abrir mão do uso da unittest? É perfeitamente possível. O Pytest (por padrão) busca por classes de teste com prefixo Test, e prefixo test para os métodos: