pytest-quickcheck fournit une fonction de pytest.mark.randomize pour générer des données de test aléatoires.
Installation
& Nbsp; easy_install pytest-quickcheck # ou
& Nbsp; pip installer pytest-quickcheck
démarrage rapide
Il suffit de passer la signature de la fonction de randomiser marqueur. La signature est représenté un tuple composent de nom de l'argument et son type.
@ Pytest.mark.randomize (("i1", "int"), ("i2", "int"), ncalls = 1)
test_generate_ints def (i1, i2):
& Nbsp; passe
Plus structure de données complexe:
@ Pytest.mark.randomize (
& Nbsp; ("D1", "{'x': int,« y »: [str, (int, int)], 'z': {« x »: str}}")
)
def test_generate_dict (d1):
& Nbsp; passe
Le marqueur randomize est capable d'utiliser avec le marqueur de Paramétrer.
@ Pytest.mark.parametrize ("prime", [2, 3, 5])
@ Pytest.mark.randomize (("i1", "int"), ("F1", "float"), ncalls = 1)
def test_gen_parametrize_with_randomize_int_float (Premier, i1, f1):
& Nbsp; passe
En utilisant l'option de ligne de commande --randomize restreint que le test de randomize.
$ Py.test -v --randomize test_option.py
================================================== ========================================
la session de l'essai commence
================================================== ========================================
test_option.py:5: test_normal SKIPPED
test_option.py:8: test_generate_ints [74-22] a réussi
Usage
Il certaines options pour chaque type de données:
$ Py.test --markers
@ Pytest.mark.randomize ((nomarg, type), les options **): marquer la fonction de test avec
données aléatoires générant tout type de données.
& Nbsp; Il ya des options pour chaque type de données: (voir doc pour plus de détails)
& Nbsp; int: ['min_num »,« MAX_NUM']
& Nbsp; float: ['min_num »,« MAX_NUM »,« positive »]
& Nbsp; str: ['encoding', 'fixed_length »,« max_length »,« str_attrs']
- Option commune
& Nbsp; ncalls: définir le nombre d'appels. Par défaut, 3. (par exemple ncalls = 5)
& Nbsp; choix: choisir séquence donnée. (par exemple choix = [3, 5, 7])
- Int
& Nbsp; min_num: limite inférieure pour générer nombre entier. (Par exemple min_num = 0)
& Nbsp; MAX_NUM: limite supérieure pour générer nombre entier. (Par exemple MAX_NUM = 10)
- Float
& Nbsp; min_num: limite inférieure pour générer nombre réel. (Par exemple min_num = 0,0)
& Nbsp; MAX_NUM: limite supérieure pour générer nombre réel. (Par exemple MAX_NUM = 1,0)
& Nbsp; positif: générer qu'un nombre réel positif si la valeur True. Par défaut à false. (Par exemple positif = True)
- Str
& Nbsp; encodage: générer chaîne de caractères Unicode codé code de caractère donné. (Par exemple encoding = "utf-8") # pour Python 2.x seulement
& Nbsp; fixed_length: générer chaîne de longueur fixe. (Par exemple fixed_length = 8)
& Nbsp; max_length: générer la chaîne inférieure ou égale à la longueur max (par exemple max_length = 32)
& Nbsp; str_attrs: générer la chaîne de lettres données. définir un tuple composent de noms d'attribut du module de chaîne. (Par exemple str_attrs = ("chiffres", "ponctuation")
Probablement, pytest_quickcheck / tests / test_plugin_basic.py est utile pour apprendre à utiliser ces options
Ce qui est nouveau dans cette version:.
- Les types dans les arguments sont spécifiés par les types eux-mêmes (# 1)
Ce qui est nouveau dans la version 0.6:
- Ajouter générer fonction des données de la fonction d'annotation
Exigences :
- Python
- py.test
Commentaires non trouvées