Всі крапки над і - розбираємо фікстура pytest - python

Теги: # #

Знадобилося мені тут в одному з модулів запустити для кожного тесту фікстура, і чет я зажурився - не зовсім розумію як організувати їх по розумному.

Про саму проблему:
Треба оттестіть функціональність логінізаціі, соответвенно потрібна фікстура яка по закінченню тесту, разлогінітся з системи.
друга - є набори тестів, для кожного з типів користувачів, як запив фікстур що б по аргументу командного рядка, запускалися тільки певні тести (на кшталт розібрався - треба зробити позначену фікстур як я зрозумів.). але кому не тяжко, прикладіть реальний варіант.

При цьому всім, бажано що б фікстура можна було ставити як декоратор, так як у мене є ще глобальні фікстура самого драйвера і моделі.

Всі тести пишуться по пейдж обджекту, в аргумент яких приходить модель додатки.

Проблема в загальному то вирішена, на даному етапі.

залежить від того в якому вигляді ваші тести. Де то був тут мій давній питання по переходу з юніттест на пайтест, де я вирішував проблему запущеного драйвера раз на сесію, без переписування всіх тестів, їх там близько 200.

Ви опишіть які труднощі вас останавліватся, мож че вирішимо)

Заздалегідь тільки можу сказати що дешевше писати добре тести, що втім міні і допомогло в переході очень..Все тести і підготовка, повинна в рівній мірі бути відділена від тестів, інакше потім починається що фіксура що то недовиконує, і потрібно це робити в тесті.

Якщо у вас Джанго, то, можливо вам варто переписати все під глобал фікстур запуску сервера і бази,
Класові фікстура це перехід на якусь сторінку з функціональностями, і так, фікстур бажано робити параметризованих, розумію, це як то паршиво концепцію - зате все виглядає рівно.

Насправді при переході на pytest виникло дві дивні проблеми: 1. Активно стала з'являтися помилка 429, це вирішилося прописування Dummy кешу від Django. і проблема №2 (залежна від того, як написаний проект і конкретні тести). Першу вирішили швидко, а з другої боремося поки. За підсумком з 300 тестів падають 2, що в цілому непоганий результат.
Плюс ми не працюємо з Selenium, так що війни проходять на розділі - інтеграційні-функціональні тести.
Якщо чого цікавого нарою - дам знати.

Шановний топикстартер, не могли б ви докласти свій приклад рішення.
Моя проблема схожа: в тесті створюється юзер, і по завершенню тесту хотілося б його видалити.
Заздалегідь спс!

Для початку потрібно уточнити, як створюється юзер, і наскільки часу він потрібен, тому що при зариті драйвера, ви автоматично разлогінітесь, якщо не робите магію з куками.
Нагадаю, фікстура можна викликати один з одного,
Є кілька варіантів, і вони залежать від того, як ви використовуєте драйвер, далі буде просто логінізація :.
1. логін потрібен на кожен тест свій, веб драйвер один на всю сесію
- потрібна повна фікстура з параметром

Фікстура можна комбінувати, наприклад при складній ієрархії учеток (адмін, що не адмін, користувач, і інші), зручно в об'єкті додатки описувати ВЕСЬ функціонал, і писати тести ВСЕ можливі, а от потім, спец фікстур їх просто позначати згідно доступам, і запускати по ключу. Унікальні, природно відокремлювати як потрібно.

Поки, для тестування моєї, подібної системи навчання, де купа багато всяких рангів користувачів, я нічого кращого не придумав.