Хочу быстро поделиться простым способом сгенерировать большое количество тестов для py.test
pytest: helps you write better programs — pytest documentation фреймворка под ваши нужды.
Небольшая предыстория: Сейчас у меня есть задача протестировать новый excel репортинг прикрученный к нашему фреймворку автоматизации. И для того чтобы сделать немного поумнее чем просто копипаст, я создал небольшой скриптик на
python
py.test
Данный механизм реализован через декоратор, который клонирует тестовые классы и через параметризацию тестов, которая уже есть встроенная в py.test
.
import random
import pytest
def multiply(amount):
def decorator(cls):
for i in xrange(amount):
class_name = cls.__name__ + str(i)
globals()[class_name] = type(class_name, (cls,), {})
return decorator
@multiply(10)
class TestExcelDemo(object):
@pytest.mark.parametrize('data', random.sample(range(200), 10))
def test_excel_demo(self, data):
if data % random.randint(1, 3):
raise AssertionError('failure')
if data % 3:
pytest.skip('skip')
Скрипт простой, но выполняет свою задачу на 100%.
Надеюсь кому-то будет полезно! Ставим лайк
А какие у вас есть полезные скрипты?