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.
pytest-dev/pytest-randomly
Plugin do pytest que embaralha a ordem dos testes e redefine as seeds aleatórias para reproduzir falhas causadas pela ordem ou por dados aleatórios.
- Estrelas
- 724
- Forks
- 39
- Issues abertas
- 5
- Último commit
- há 4 dias
O que é?
pytest-randomly é um plugin para o framework de testes Python pytest. Por padrão, ele embaralha a ordem dos testes por módulo, depois por classe e, por fim, por função, ajudando a revelar dependências ocultas entre os testes.
Cada execução dos testes exibe uma seed aleatória base, que pode ser informada novamente com --randomly-seed (ou com o valor last) para repetir a mesma ordem e os mesmos dados. No início de cada etapa de setup, execução e teardown de cada teste, o plugin redefine a seed aleatória global do Python com base nessa seed e no ID do teste, mantendo reproduzíveis os testes que usam dados aleatórios. Ele também redefine o estado aleatório de factory boy, Faker, Model Bakery, do gerador legado do NumPy e do Polyfactory.
É possível desativar ambos os comportamentos com flags, e o plugin aceita geradores aleatórios personalizados pelo entry point pytest_randomly.random_seeder. Ele funciona com pytest-xdist.
Recursos principais
- 01Embaralha a ordem dos testes por módulo, classe e função
- 02Aceita uma seed com --randomly-seed, incluindo 'last' para reutilizar a seed anterior
- 03Redefine as seeds aleatórias antes do setup, da execução e do teardown de cada teste
- 04Redefine o estado aleatório de factory boy, Faker, Model Bakery, NumPy e Polyfactory
- 05Aceita geradores aleatórios personalizados por meio de um entry point
- 06Funciona com pytest-xdist
Casos de uso
- Encontrar testes que só passam porque outro teste foi executado antes
- Reproduzir uma falha intermitente causada pela ordem dos testes ou por dados de teste aleatórios
- Escrever testes com dados gerados por factories que precisam continuar reproduzíveis
- Investigar interferências entre testes executando novamente um único módulo com a mesma seed
Início rápido
- 1
Instale o plugin com pip
python -m pip install pytest-randomly - 2
Execute pytest; o plugin embaralha os testes automaticamente e imprime a semente
pytest
Antes de usar
- Requer Python 3.11 a 3.15 e o executor de testes pytest.
Em coleções
Tópicos
Perguntas frequentes
- O que é pytest-randomly?
- Plugin do pytest que embaralha a ordem dos testes e redefine as seeds aleatórias para reproduzir falhas causadas pela ordem ou por dados aleatórios. pytest-randomly é um plugin para o framework de testes Python pytest. Por padrão, ele embaralha a ordem dos testes por módulo, depois por classe e, por fim, por função, ajudando a revelar dependências ocultas entre os testes.
- pytest-randomly é gratuito? Qual é a licença?
- pytest-randomly é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pytest-randomly ainda é mantido?
- Manutenção ativa. O último commit de pytest-randomly foi em 2 de nov. de 2026.
- Para que posso usar pytest-randomly?
- Encontrar testes que só passam porque outro teste foi executado antes Reproduzir uma falha intermitente causada pela ordem dos testes ou por dados de teste aleatórios Escrever testes com dados gerados por factories que precisam continuar reproduzíveis Investigar interferências entre testes executando novamente um único módulo com a mesma seed
- Como instalar pytest-randomly?
- Instale o plugin com pip: python -m pip install pytest-randomly Execute pytest; o plugin embaralha os testes automaticamente e imprime a semente: pytest
- Onde consigo pytest-randomly?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pytest-dev/pytest-randomly
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Plugin do pytest que executa testes em paralelo em várias CPUs e oferece um modo para repetir testes com falha.
Um plugin do pytest que permite escrever testes como corrotinas e usar await diretamente no código de teste.
Framework de BDD que executa arquivos de funcionalidades Gherkin como testes do pytest, sem precisar de um executor de testes separado.
Plugin do pytest que executa novamente apenas os testes afetados pelas mudanças recentes no código, com modo de observação contínua opcional.
Pacote Python que envia resultados do coverage.py ao coveralls.io para publicar estatísticas de cobertura online.