pytest-QuickCheck fornece uma função pytest.mark.randomize para a geração de dados de teste aleatórios.
Instalação
& Nbsp; easy_install pytest-QuickCheck # ou
& Nbsp; pip instalar pytest-QuickCheck
Início Rápido
Basta passar a assinatura de função para embaralhar marcador. A assinatura é representado uma tupla consistem em nome do argumento e seu tipo.
@ Pytest.mark.randomize (("i1", "int"), ("i2", "int"), ncalls = 1)
test_generate_ints def (i1, i2):
& Nbsp; passe
Estrutura de dados mais complexa:
@ Pytest.mark.randomize (
& Nbsp; ("d1", "{'x': int, 'y': [str, (int, int)], 'z': {'x': str}}")
)
test_generate_dict def (D1):
& Nbsp; passe
O marcador casualizado é capaz de utilizar com marcador Parametrização.
@ Pytest.mark.parametrize ("prime", [2, 3, 5])
@ Pytest.mark.randomize (("i1", "int"), ("f1", "float"), ncalls = 1)
test_gen_parametrize_with_randomize_int_float def (prime, i1, f1):
& Nbsp; passe
Usando a opção de linha de comando --randomize restringe somente o teste Randomize.
$ Py.test -v --randomize test_option.py
================================================== ========================================
inicia sessão de testes
================================================== ========================================
test_option.py:5: test_normal SKIPPED
test_option.py:8: test_generate_ints [74-22] PASSARAM
Uso
Há algumas opções para cada tipo de dados:
$ Py.test --markers
@ Pytest.mark.randomize ((argname, tipo), opções **): marque a função de teste com
dados aleatórios gerando qualquer tipo de dados.
& Nbsp; Há opções para cada tipo de dados: (ver doc para mais detalhes)
& Nbsp; int: ['min_num', 'MAX_NUM']
& Nbsp; float: ['min_num', 'MAX_NUM', 'positivo']
& Nbsp; str: ['encoding', 'fixed_length', 'max_length', 'str_attrs']
- Opção comum
& Nbsp; ncalls: definir o número de chamadas. O padrão é 3. (por exemplo ncalls = 5)
& Nbsp; opções: escolher a partir de determinada sequência. (por exemplo escolhas = [3, 5, 7])
- Int
& Nbsp; min_num: limite inferior para a geração de número inteiro. (Por exemplo min_num = 0)
& Nbsp; MAX_NUM: limite superior para a geração de número inteiro. (Por exemplo MAX_NUM = 10)
- Flutuador
& Nbsp; min_num: limite inferior para a geração de número real. (Por exemplo min_num = 0,0)
& Nbsp; MAX_NUM: limite superior para gerar o número real. (Por exemplo MAX_NUM = 1,0)
& Nbsp; positivo: gerar apenas número real positivo se definido como True. O padrão é False. (Por exemplo positivo = True)
- Str
& Nbsp; encoding: gerar string unicode codificado determinado código personagem. (Por exemplo encoding = "utf-8") # apenas Python 2.x
& Nbsp; fixed_length: gerar seqüência de comprimento fixo. (Por exemplo fixed_length = 8)
& Nbsp; max_length: gerar a seqüência menor ou igual ao comprimento máximo (por exemplo max_length = 32)
& Nbsp; str_attrs: gerar a seqüência em determinadas letras. definir uma tupla composta de nomes de atributos no módulo string. (Por exemplo str_attrs = ("dígitos", "pontuação")
Provavelmente, pytest_quickcheck / tests / test_plugin_basic.py é útil para aprender a usar essas opções
O que é novo nesta versão:.
- Os tipos dos argumentos são especificados pelos próprios (# 1) tipos
O que é novo na versão 0.6:
- Adicionar recurso dados geração de anotação de função
Requisitos :
- Python
- py.test
Comentários não encontrado