pytest-QuickCheck pytest.mark.randomize functie voor het genereren van willekeurige testgegevens.
installatie
& Nbsp; easy_install pytest-QuickCheck # of
& Nbsp; pip installeren pytest-QuickCheck
Quick Start
Net voorbij de handtekening van de functie om marker willekeurig. De handtekening wordt voorgesteld een tupel bestaan van het betoog van de naam en het type.
@ Pytest.mark.randomize (("i1", "int"), ("i2", "int"), ncalls = 1)
def test_generate_ints (i1, i2):
& Nbsp; pas
Meer complexe datastructuur:
@ Pytest.mark.randomize (
& Nbsp; ("d1", "{'x': int, 'y': [str, (int, int)], 'z': {'x': str}}")
)
def test_generate_dict (d1):
& Nbsp; pas
De randomize marker is in staat om te gebruiken met parametriseren marker.
@ Pytest.mark.parametrize ("prime", [2, 3, 5])
@ Pytest.mark.randomize (("i1", "int"), ("F1", "float"), ncalls = 1)
def test_gen_parametrize_with_randomize_int_float (prime, i1, f1):
& Nbsp; pas
Met behulp van command line optie --randomize beperkt alleen de randomize test.
$ Py.test -v --randomize test_option.py
================================================== ========================================
testsessie start
================================================== ========================================
test_option.py:5: test_normal SKIPPED
test_option.py:8: test_generate_ints [74-22] PASSED
Gebruik
Er een aantal opties voor elk type data:
$ Py.test --markers
@ Pytest.mark.randomize ((argname, type), ** opties): markeer de testfunctie met
willekeurige gegevens genereren van elk type gegevens.
& Nbsp; Er zijn opties voor elk type gegevens: (zie doc voor details)
& Nbsp; int: ['min_num', 'MAX_NUM']
& Nbsp; float: ['min_num', 'MAX_NUM', 'positieve']
& Nbsp; str: ['encoding', 'fixed_length', 'max_length', 'str_attrs']
- Gemeenschappelijke optie
& Nbsp; ncalls: stel het aantal oproepen. Standaard op 3. (bijv ncalls = 5)
& Nbsp; keuzes: kiezen uit bepaalde volgorde. (Bijvoorbeeld keuzes = [3, 5, 7])
- Int
& Nbsp; min_num: ondergrens voor het genereren van geheel getal. (Bijvoorbeeld min_num = 0)
& Nbsp; MAX_NUM: bovengrens voor het genereren van geheel getal. (Bijvoorbeeld MAX_NUM = 10)
- Float
& Nbsp; min_num: ondergrens voor het genereren van reële getallen. (Bijvoorbeeld min_num = 0.0)
& Nbsp; MAX_NUM: bovengrens voor het genereren van reële getallen. (Bijvoorbeeld MAX_NUM = 1.0)
& Nbsp; positieve: het genereren van alleen positieve reële getal indien ingesteld op True. Standaard ingesteld op False. (Bijv positieve = True)
- Str
& Nbsp; codering: het genereren van unicode tekenreeks die bepaald personage code. (Bijv encoding = "UTF-8") # voor slechts Python 2.x
& Nbsp; fixed_length: het genereren van een vaste lengte string. (Bijvoorbeeld fixed_length = 8)
& Nbsp; max_length: genereer de string kleiner dan of gelijk aan Max lengte (bijv max_length = 32)
& Nbsp; str_attrs: het genereren van de string in de gegeven letters. set een tupel uit kenmerknamen in de tekenreeks module. (Bijvoorbeeld str_attrs = ("cijfers", "leestekens")
Waarschijnlijk, pytest_quickcheck / testen / test_plugin_basic.py is handig voor het leren hoe u deze opties gebruiken
Wat is nieuw in deze release:.
- De soorten van de argumenten worden gespecificeerd door de aard zelf (# 1)
Wat is nieuw in versie 0.6:
- Voeg het genereren van data functie van functie annotatie
Eisen
- Python
- py.test
Reacties niet gevonden