Ferramenta de análise estática para PHP que encontra bugs no código sem executá-lo.
realpython/pytest-mypy
Um plugin do pytest que executa o verificador estático de tipos mypy nos arquivos-fonte durante as execuções de testes.
- Estrelas
- 257
- Forks
- 33
- Issues abertas
- 8
- Último commit
- há 16 dias
O que é?
pytest-mypy adiciona a verificação de tipos do mypy ao fluxo de trabalho do pytest. Quando ativado com a flag --mypy, ele executa o mypy nos arquivos Python passados ao pytest e relata erros de tipos como resultados de testes, permitindo que as verificações de tipos sejam executadas junto com os testes existentes. O projeto segue o modelo do pytest-flake8, que faz o mesmo para o flake8.
As configurações do mypy podem ser fornecidas em um arquivo mypy.ini, como de costume. O plugin também pode ser configurado em um conftest.py, onde opções adicionais do mypy, como --check-untyped-defs, podem ser acrescentadas à lista de argumentos. Ao executar pytest com -m mypy, a sessão fica limitada às verificações de tipos, sem executar os outros testes.
O projeto é instalado pelo PyPI com pip e distribuído sob a licença MIT.
Recursos principais
- 01Executa o mypy nos arquivos-fonte durante as execuções do pytest
- 02É ativado com uma única flag --mypy
- 03Lê a configuração padrão do mypy.ini
- 04Aceita opções adicionais do mypy em conftest.py
- 05Permite limitar uma execução apenas às verificações de tipos com -m mypy
Casos de uso
- Detectar erros de tipos no pipeline de testes de CI de um projeto Python
- Executar verificações de tipos junto com os testes unitários sem precisar chamar uma ferramenta separadamente
- Aplicar opções mais rigorosas do mypy, como --check-untyped-defs, somente durante a execução dos testes
Início rápido
- 1
Instale o plugin do PyPI com pip
pip install pytest-mypy - 2
Execute o pytest com a flag --mypy nos arquivos de teste
py.test --mypy test_*.py
Antes de usar
- O README informa que isto ainda está em desenvolvimento.
Em coleções
Tópicos
Perguntas frequentes
- O que é pytest-mypy?
- Um plugin do pytest que executa o verificador estático de tipos mypy nos arquivos-fonte durante as execuções de testes. pytest-mypy adiciona a verificação de tipos do mypy ao fluxo de trabalho do pytest. Quando ativado com a flag --mypy, ele executa o mypy nos arquivos Python passados ao pytest e relata erros de tipos como resultados de testes, permitindo que as verificações de tipos sejam executadas junto com os testes existentes. O projeto segue o modelo do pytest-flake8, que faz o mesmo para o flake8.
- pytest-mypy é gratuito? Qual é a licença?
- pytest-mypy é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pytest-mypy ainda é mantido?
- Manutenção ativa. O último commit de pytest-mypy foi em 22 de out. de 2026.
- Para que posso usar pytest-mypy?
- Detectar erros de tipos no pipeline de testes de CI de um projeto Python Executar verificações de tipos junto com os testes unitários sem precisar chamar uma ferramenta separadamente Aplicar opções mais rigorosas do mypy, como --check-untyped-defs, somente durante a execução dos testes
- Como instalar pytest-mypy?
- Instale o plugin do PyPI com pip: pip install pytest-mypy Execute o pytest com a flag --mypy nos arquivos de teste: py.test --mypy test_*.py
- Onde consigo pytest-mypy?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/realpython/pytest-mypy
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Verificador estático de tipos para Python, baseado em padrões e voltado a grandes bases de código, com ferramenta de linha de comando e extensão para Visual Studio Code.
Verificador de tipos em tempo de execução, escrito em Python puro, que aplica dicas de tipo PEP a funções, classes e variáveis com overhead mínimo.
Verificador de tipos em tempo de execução para Python que valida anotações PEP 484 em funções, objetos arbitrários e variáveis locais.
Analisador estático para Ruby que infere tipos sem anotações e busca reportar apenas bugs conclusivos, como métodos indefinidos e receptores nil.
Uma biblioteca Python que grava interações HTTP feitas durante os testes e as reproduz depois, para que eles rodem offline e de forma determinística.