pytest-QuickCheck забезпечує функцію pytest.mark.randomize для генерації випадкових тестових даних.
Установка
І NBSP; easy_install pytest-QuickCheck # або
І NBSP; пункт встановити pytest-QuickCheck
Швидкий старт
Просто передайте підпис функції у випадковому маркер. Підпис представлена кортеж складається з імені аргументу і його тип.
@ Pytest.mark.randomize (("i1", "INT"), ("I2", "INT"), ncalls = 1)
Захист test_generate_ints (I1, I2):
І NBSP; передача
Більш складна структура даних:
@ Pytest.mark.randomize (
І NBSP; ("d1", "{" х ": INT, 'Y': [вул (INT, INT)], 'Z': {'х': вул}}")
)
Def test_generate_dict (d1):
І NBSP; передача
Випадковий маркер може використовувати з параметрізуется маркера.
@ Pytest.mark.parametrize ("прем'єр", [2, 3, 5])
@ Pytest.mark.randomize (("i1", "INT"), ("f1", "поплавок"), ncalls = 1)
Def test_gen_parametrize_with_randomize_int_float (прем'єр, I1, F1):
І NBSP; передача
Використання опції командного рядка --randomize обмежує тільки тест Рандомайз.
$ Py.test -v --randomize test_option.py
================================================== ========================================
починається тестова сесія
================================================== ========================================
test_option.py:5: test_normal SKIPPED
test_option.py:8: test_generate_ints [74-22] PASSED
Використання
Там кілька варіантів для кожного типу даних:
$ Py.test --markers
@ Pytest.mark.randomize ((argname, тип), ** варіантів): відзначте тестову функцію з
Випадкові генерації даних будь-якого типу даних.
І NBSP; Є варіанти для кожного типу даних: (див док для деталей)
І NBSP; INT: ['min_num', 'MAX_NUM']
І NBSP; поплавок: ['min_num', 'MAX_NUM', 'позитивний']
І NBSP; вул: ['кодування', 'fixed_length', 'max_length »,« str_attrs']
- Поширений варіант
І NBSP; ncalls: встановити кількість дзвінків. За замовчуванням 3. (наприклад, ncalls = 5)
І NBSP; вибір: вибрати з заданій послідовності. (Наприклад ВИБІР = [3, 5, 7])
- INT
І NBSP; min_num: нижня межа для генерації цілого числа. (Наприклад min_num = 0)
І NBSP; MAX_NUM: верхня межа для генерації цілого числа. (Наприклад MAX_NUM = 10)
- Поплавок
І NBSP; min_num: нижня межа для генерації дійсне число. (Наприклад, min_num = 0,0)
І NBSP; MAX_NUM: верхня межа для генерації дійсне число. (Наприклад MAX_NUM = 1,0)
І NBSP; позитивно: створити тільки позитивне дійсне число, якщо встановлено значення True. За замовчуванням False. (Наприклад, позитив = True)
- Вул
І NBSP; кодування: генерувати Unicode рядок в кодуванні даний код символу. (Наприклад, кодування = "UTF-8") # тільки для Python 2.x
І NBSP; fixed_length: генерувати фіксовану рядок довжини. (Наприклад fixed_length = 8)
& NBSP; max_length: генерують рядок менше або дорівнює максимальній довжині (наприклад, max_length = 32)
І NBSP; str_attrs: генерувати рядок в даних букв. встановити кортеж складається з імен атрибутів у модулі рядка. (Наприклад str_attrs = ("цифри", "пунктуації")
Можливо, pytest_quickcheck / тести / test_plugin_basic.py корисно для навчання, як використовувати ці опції
Що нового У цьому випуску :.
- типів в аргументах зазначаються самими (# 1) Типи
Що нового у версії 0.6:
- Додати генерації функцію даних від функції анотації
Вимоги
- Python
- py.test
Коментар не знайдено