Python: автоматизированное тестирование

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 05 янв 2022, 21:08

Есть много совершенно разных оснований заниматься автоматизированным тестированием:
1. В разработческих софтверных компаниях уже вовсю используется...
2. Позволяет вести контроль качества по ходу (в процессе) разработки...
3. Инструментария (где-то в 2012 года) полно по предложению...
4. Часто и сама разработка ведётся новым методом Разработка через тестирование (test-driven development, TDD):
В 1999 году при своём появлении разработка через тестирование была тесно связана с концепцией «сначала тест» (англ. test-first), применяемой в экстремальном программировании[2], однако позже выделилась как независимая методология.
Разработка через тестирование требует от разработчика создания автоматизированных модульных тестов, определяющих требования к коду непосредственно перед написанием самого кода. Тест содержит проверки условий, которые могут либо выполняться, либо нет. Когда они выполняются, говорят, что тест пройден. Прохождение теста подтверждает поведение, предполагаемое программистом.
5. Наконец ... на рынке труда произошёл какой-то перекос, и на сегодня вакансии QA и тестеров предлагают оплату такую и выше, чем опытных разработчиков! :-o :shock:

P.S.Автоматизированное тестирование...
Впервые автоматизированное тестирование упоминается в книге Фредерика Брукса «Мифический человеко-месяц», где говорится о перспективах использования модульного тестирования.
P.P.S. Это одна из лучших книг, которые я знаю, по организации и методологии программной разработки. А её издания:
Фредерик Брукс. Мифический человеко-месяц или как создаются программные системы. (Серия: «Профессионально») = The Mythical Man-Month. Essays on Software Engineering. Anniversary Edition. — СПб.: «Символ-Плюс», 2000. — 304 с.: ил. с. — ISBN 5-93286-005-7.
- я был научным редактором текста перевода (книга в левом-нижнем углу):
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 05 янв 2022, 21:17

Olej писал(а):
05 янв 2022, 21:08
3. Инструментария (где-то в 2012 года) полно по предложению...
В первую очередь это модуль pytest.

Pytest — тестирование приложений в Python 3
17.03.2021
Python Testing с pytest. Начало работы с pytest, Глава 1
Изображение
Там же - ссылки на все последующие главы книги.

Из документации:
Установка и запуск
pytest - это фреймворк, который позволяет легко создавать как простые, так и расширяемые тесты. Тесты выразительны и легко читаются — не нужно никаких шаблонов. Начните работу в считанные минуты с небольшого модульного или сложного функционального теста для вашего приложения или библиотеки.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 05 янв 2022, 23:30

Olej писал(а):
05 янв 2022, 21:17
В первую очередь это модуль pytest.
Установить можно по-разному pytest в систему можно по-разному:
1.

Код: Выделить всё

olej@R420:~$ pip3 install pytest
Collecting pytest
  Downloading pytest-6.2.5-py3-none-any.whl (280 kB)
     |████████████████████████████████| 280 kB 1.2 MB/s
Collecting attrs>=19.2.0
  Downloading attrs-21.4.0-py2.py3-none-any.whl (60 kB)
     |████████████████████████████████| 60 kB 2.9 MB/s
Collecting toml
  Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting iniconfig
  Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting pluggy<2.0,>=0.12
  Downloading pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Requirement already satisfied: packaging in /usr/lib/python3/dist-packages (from pytest) (20.3)
Collecting py>=1.8.2
  Downloading py-1.11.0-py2.py3-none-any.whl (98 kB)
     |████████████████████████████████| 98 kB 2.2 MB/s
Installing collected packages: attrs, toml, iniconfig, pluggy, py, pytest
  WARNING: The scripts py.test and pytest are installed in '/home/olej/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed attrs-21.4.0 iniconfig-1.1.1 pluggy-1.0.0 py-1.11.0 pytest-6.2.5 toml-0.10.2

Код: Выделить всё

olej@R420:~$ pip3 list | grep test
pytest                       6.2.5
speedtest-cli                2.1.2

Код: Выделить всё

olej@R420:~$ ls -l .local/bin/pytest
-rwxrwxr-x 1 olej olej 221 янв  5 13:48 .local/bin/pytest
И дальше установить этот путь в $PATH

2.

Код: Выделить всё

olej@R420:~$ pytest
Команда «pytest» не найдена, но может быть установлена с помощью:
sudo apt install python-pytest

Код: Выделить всё

olej@R420:~$ sudo apt install python-pytest
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
  python-atomicwrites python-attr python-configparser python-contextlib2 python-funcsigs python-importlib-metadata python-more-itertools python-packaging
  python-pathlib2 python-pkg-resources python-pluggy python-py python-pyparsing python-scandir python-six python-wcwidth python-zipp
Предлагаемые пакеты:
  python-attr-doc python-funcsigs-doc python-setuptools subversion python-pyparsing-doc python-mock
Следующие НОВЫЕ пакеты будут установлены:
  python-atomicwrites python-attr python-configparser python-contextlib2 python-funcsigs python-importlib-metadata python-more-itertools python-packaging
  python-pathlib2 python-pkg-resources python-pluggy python-py python-pyparsing python-pytest python-scandir python-six python-wcwidth python-zipp
Обновлено 0 пакетов, установлено 18 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 724 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 3.593 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-atomicwrites all 1.1.5-2build1 [6.936 B]
Пол:2 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-attr all 19.3.0-2 [33,8 kB]
Пол:3 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-configparser all 3.5.0b2-3build1 [59,0 kB]
Пол:4 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-contextlib2 all 0.6.0-2 [11,3 kB]
Пол:5 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-funcsigs all 1.0.2-4build1 [13,5 kB]
Пол:6 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-six all 1.14.0-2 [12,0 kB]
Пол:7 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-scandir amd64 1.10.0-2ubuntu3 [18,7 kB]
Пол:8 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-pathlib2 all 2.3.5-1ubuntu1 [17,6 kB]
Пол:9 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-more-itertools all 4.2.0-1build1 [39,5 kB]
Пол:10 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-zipp all 1.0.0-1 [5.224 B]
Пол:11 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-importlib-metadata all 1.5.0-1 [9.928 B]
Пол:12 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-pyparsing all 2.4.6-1 [61,2 kB]
Пол:13 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-packaging all 20.3-1 [26,7 kB]
Пол:14 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-pkg-resources all 44.0.0-2 [129 kB]
Пол:15 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-pluggy all 0.13.0-2 [18,3 kB]
Пол:16 http://ubuntu.org.ua/ubuntu focal-updates/universe amd64 python-py all 1.8.1-1ubuntu0.1 [65,5 kB]
Пол:17 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-wcwidth all 0.1.8+dfsg1-3 [17,3 kB]
Пол:18 http://ubuntu.org.ua/ubuntu focal/universe amd64 python-pytest all 4.6.9-1 [178 kB]
Получено 724 kB за 0с (1.559 kB/s)
Выбор ранее не выбранного пакета python-atomicwrites.
(Чтение базы данных … на данный момент установлено 408834 файла и каталога.)
Подготовка к распаковке …/00-python-atomicwrites_1.1.5-2build1_all.deb …
Распаковывается python-atomicwrites (1.1.5-2build1) …
Выбор ранее не выбранного пакета python-attr.
Подготовка к распаковке …/01-python-attr_19.3.0-2_all.deb …
Распаковывается python-attr (19.3.0-2) …
Выбор ранее не выбранного пакета python-configparser.
Подготовка к распаковке …/02-python-configparser_3.5.0b2-3build1_all.deb …
Распаковывается python-configparser (3.5.0b2-3build1) …
Выбор ранее не выбранного пакета python-contextlib2.
Распаковывается python-contextlib2 (0.6.0-2) …
Выбор ранее не выбранного пакета python-funcsigs.
Подготовка к распаковке …/04-python-funcsigs_1.0.2-4build1_all.deb …
Распаковывается python-funcsigs (1.0.2-4build1) …
Выбор ранее не выбранного пакета python-six.
Подготовка к распаковке …/05-python-six_1.14.0-2_all.deb …
Распаковывается python-six (1.14.0-2) …
Выбор ранее не выбранного пакета python-scandir.
Подготовка к распаковке …/06-python-scandir_1.10.0-2ubuntu3_amd64.deb …
Распаковывается python-scandir (1.10.0-2ubuntu3) …
Выбор ранее не выбранного пакета python-pathlib2.
Подготовка к распаковке …/07-python-pathlib2_2.3.5-1ubuntu1_all.deb …
Распаковывается python-pathlib2 (2.3.5-1ubuntu1) …
Выбор ранее не выбранного пакета python-more-itertools.
Подготовка к распаковке …/08-python-more-itertools_4.2.0-1build1_all.deb …
Распаковывается python-more-itertools (4.2.0-1build1) …
Выбор ранее не выбранного пакета python-zipp.
Подготовка к распаковке …/09-python-zipp_1.0.0-1_all.deb …
Распаковывается python-zipp (1.0.0-1) …
Выбор ранее не выбранного пакета python-importlib-metadata.
Подготовка к распаковке …/10-python-importlib-metadata_1.5.0-1_all.deb …
Распаковывается python-importlib-metadata (1.5.0-1) …
Выбор ранее не выбранного пакета python-pyparsing.
Подготовка к распаковке …/11-python-pyparsing_2.4.6-1_all.deb …
Распаковывается python-pyparsing (2.4.6-1) …
Выбор ранее не выбранного пакета python-packaging.
Подготовка к распаковке …/12-python-packaging_20.3-1_all.deb …
Распаковывается python-packaging (20.3-1) …
Выбор ранее не выбранного пакета python-pkg-resources.
Подготовка к распаковке …/13-python-pkg-resources_44.0.0-2_all.deb …
Распаковывается python-pkg-resources (44.0.0-2) …
Выбор ранее не выбранного пакета python-pluggy.
Подготовка к распаковке …/14-python-pluggy_0.13.0-2_all.deb …
Распаковывается python-pluggy (0.13.0-2) …
Выбор ранее не выбранного пакета python-py.
Подготовка к распаковке …/15-python-py_1.8.1-1ubuntu0.1_all.deb …
Распаковывается python-py (1.8.1-1ubuntu0.1) …
Выбор ранее не выбранного пакета python-wcwidth.
Подготовка к распаковке …/16-python-wcwidth_0.1.8+dfsg1-3_all.deb …
Распаковывается python-wcwidth (0.1.8+dfsg1-3) …
Выбор ранее не выбранного пакета python-pytest.
Подготовка к распаковке …/17-python-pytest_4.6.9-1_all.deb …
Распаковывается python-pytest (4.6.9-1) …
Настраивается пакет python-pkg-resources (44.0.0-2) …
Настраивается пакет python-attr (19.3.0-2) …
Настраивается пакет python-atomicwrites (1.1.5-2build1) …
Настраивается пакет python-six (1.14.0-2) …
Настраивается пакет python-pyparsing (2.4.6-1) …
Настраивается пакет python-more-itertools (4.2.0-1build1) …
Настраивается пакет python-configparser (3.5.0b2-3build1) …
Настраивается пакет python-funcsigs (1.0.2-4build1) …
Настраивается пакет python-scandir (1.10.0-2ubuntu3) …
Настраивается пакет python-wcwidth (0.1.8+dfsg1-3) …
Настраивается пакет python-contextlib2 (0.6.0-2) …
Настраивается пакет python-py (1.8.1-1ubuntu0.1) …
Настраивается пакет python-packaging (20.3-1) …
Настраивается пакет python-pathlib2 (2.3.5-1ubuntu1) …
Настраивается пакет python-zipp (1.0.0-1) …
Настраивается пакет python-importlib-metadata (1.5.0-1) …
Настраивается пакет python-pluggy (0.13.0-2) …
Настраивается пакет python-pytest (4.6.9-1) …
Обрабатываются триггеры для man-db (2.9.1-1) …
Обрабатываются триггеры для doc-base (0.10.9) …
Обработка 1 добавленный файл doc-base...

Код: Выделить всё

olej@R420:~$ pytest
==================================================================== test session starts ====================================================================
platform linux2 -- Python 2.7.18, pytest-4.6.9, py-1.8.1, pluggy-0.13.0
rootdir: /home/olej
collecting ...
...
Таким образом мы установим под Python2

3.

Код: Выделить всё

olej@R420:~$ sudo apt install python3-pytest
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  python-atomicwrites python-attr python-configparser python-contextlib2 python-funcsigs python-importlib-metadata python-more-itertools python-packaging python-pathlib2
  python-pkg-resources python-pluggy python-py python-pyparsing python-scandir python-six python-wcwidth python-zipp
Для их удаления используйте «sudo apt autoremove».
Будут установлены следующие дополнительные пакеты:
  python3-atomicwrites python3-attr python3-importlib-metadata python3-more-itertools python3-pluggy python3-py python3-wcwidth python3-zipp
Предлагаемые пакеты:
  python-attr-doc subversion
Следующие НОВЫЕ пакеты будут установлены:
  python3-atomicwrites python3-attr python3-importlib-metadata python3-more-itertools python3-pluggy python3-py python3-pytest python3-wcwidth python3-zipp
Обновлено 0 пакетов, установлено 9 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 375 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 1.826 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://ubuntu.org.ua/ubuntu focal/universe amd64 python3-atomicwrites all 1.1.5-2build1 [7.016 B]
Пол:2 http://ubuntu.org.ua/ubuntu focal/main amd64 python3-attr all 19.3.0-2 [33,9 kB]
Пол:3 http://ubuntu.org.ua/ubuntu focal/main amd64 python3-more-itertools all 4.2.0-1build1 [39,4 kB]
Пол:4 http://ubuntu.org.ua/ubuntu focal/main amd64 python3-zipp all 1.0.0-1 [5.312 B]
Пол:5 http://ubuntu.org.ua/ubuntu focal/main amd64 python3-importlib-metadata all 1.5.0-1 [9.992 B]
Пол:6 http://ubuntu.org.ua/ubuntu focal/universe amd64 python3-pluggy all 0.13.0-2 [18,4 kB]
Пол:7 http://ubuntu.org.ua/ubuntu focal-updates/universe amd64 python3-py all 1.8.1-1ubuntu0.1 [65,6 kB]
Пол:8 http://ubuntu.org.ua/ubuntu focal/main amd64 python3-wcwidth all 0.1.8+dfsg1-3 [17,4 kB]
Пол:9 http://ubuntu.org.ua/ubuntu focal/universe amd64 python3-pytest all 4.6.9-1 [178 kB]
Получено 375 kB за 0с (1.296 kB/s)
Выбор ранее не выбранного пакета python3-atomicwrites.
(Чтение базы данных … на данный момент установлено 409154 файла и каталога.)
Подготовка к распаковке …/0-python3-atomicwrites_1.1.5-2build1_all.deb …
Распаковывается python3-atomicwrites (1.1.5-2build1) …
Выбор ранее не выбранного пакета python3-attr.
Подготовка к распаковке …/1-python3-attr_19.3.0-2_all.deb …
Распаковывается python3-attr (19.3.0-2) …
Выбор ранее не выбранного пакета python3-more-itertools.
Подготовка к распаковке …/2-python3-more-itertools_4.2.0-1build1_all.deb …
Распаковывается python3-more-itertools (4.2.0-1build1) …
Выбор ранее не выбранного пакета python3-zipp.
Подготовка к распаковке …/3-python3-zipp_1.0.0-1_all.deb …
Распаковывается python3-zipp (1.0.0-1) …
Выбор ранее не выбранного пакета python3-importlib-metadata.
Подготовка к распаковке …/4-python3-importlib-metadata_1.5.0-1_all.deb …
Распаковывается python3-importlib-metadata (1.5.0-1) …
Выбор ранее не выбранного пакета python3-pluggy.
Подготовка к распаковке …/5-python3-pluggy_0.13.0-2_all.deb …
Распаковывается python3-pluggy (0.13.0-2) …
Выбор ранее не выбранного пакета python3-py.
Подготовка к распаковке …/6-python3-py_1.8.1-1ubuntu0.1_all.deb …
Распаковывается python3-py (1.8.1-1ubuntu0.1) …
ыбор ранее не выбранного пакета python3-wcwidth.
Подготовка к распаковке …/7-python3-wcwidth_0.1.8+dfsg1-3_all.deb …
Распаковывается python3-wcwidth (0.1.8+dfsg1-3) …
Выбор ранее не выбранного пакета python3-pytest.
Подготовка к распаковке …/8-python3-pytest_4.6.9-1_all.deb …
Распаковывается python3-pytest (4.6.9-1) …
Настраивается пакет python3-more-itertools (4.2.0-1build1) …
Настраивается пакет python3-attr (19.3.0-2) …
Настраивается пакет python3-py (1.8.1-1ubuntu0.1) …
Настраивается пакет python3-zipp (1.0.0-1) …
Настраивается пакет python3-atomicwrites (1.1.5-2build1) …
Настраивается пакет python3-wcwidth (0.1.8+dfsg1-3) …
Настраивается пакет python3-importlib-metadata (1.5.0-1) …
Настраивается пакет python3-pluggy (0.13.0-2) …
Настраивается пакет python3-pytest (4.6.9-1) …
Обрабатываются триггеры для man-db (2.9.1-1) …

Код: Выделить всё

olej@R420:~$ ls -l /usr/bin/py*test*
lrwxrwxrwx 1 root root   8 янв  8  2020 /usr/bin/py.test-3 -> pytest-3
-rwxr-xr-x 1 root root 377 янв  8  2020 /usr/bin/pytest-3

Код: Выделить всё

olej@R420:~$ pytest-3
================================================================================== test session starts ===================================================================================
platform linux -- Python 3.8.10, pytest-4.6.9, py-1.8.1, pluggy-0.13.0
rootdir: /home/olej
collecting ... pytest-3
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 05 янв 2022, 23:31

Olej писал(а):
05 янв 2022, 23:30
Установить можно по-разному pytest в систему можно по-разному:
Это всё рабочие варианты ... но меня интересует установка в виртуальном окружении, см. Python: Виртуальная среда :

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ python3 -m venv .venv

Код: Выделить всё

olej@R420:~/2022/Python/pytest$ source .venv/bin/activate
(.venv) olej@R420:~/2022/Python/pytest$

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ python --version
Python 3.8.10

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ python -m pip install pytest
Collecting pytest
  Using cached pytest-6.2.5-py3-none-any.whl (280 kB)
Collecting packaging
  Downloading packaging-21.3-py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 1.3 MB/s 
Collecting attrs>=19.2.0
  Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting py>=1.8.2
  Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting toml
  Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting iniconfig
  Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting pluggy<2.0,>=0.12
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
  Downloading pyparsing-3.0.6-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 1.3 MB/s 
Installing collected packages: pyparsing, packaging, attrs, py, toml, iniconfig, pluggy, pytest
Successfully installed attrs-21.4.0 iniconfig-1.1.1 packaging-21.3 pluggy-1.0.0 py-1.11.0 pyparsing-3.0.6 pytest-6.2.5 toml-0.10.2

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pip list
Package       Version
------------- -------
attrs         21.4.0 
iniconfig     1.1.1  
packaging     21.3   
pip           20.0.2 
pkg-resources 0.0.0  
pluggy        1.0.0  
py            1.11.0 
pyparsing     3.0.6  
pytest        6.2.5  
setuptools    44.0.0 
toml          0.10.2 

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 05 янв 2022, 23:45

Olej писал(а):
05 янв 2022, 21:17
Pytest — тестирование приложений в Python 3
К вопросу: где находятся тестовые скрипты Pytest :
Как и в любом тестовом фреймворке, в Pytest есть несколько мест, где он автоматически ищет тестовые файлы.
Имя файла должно начинаться с «test» или заканчиваться «test.py».
Определенные тестовые функции должны начинаться с «test_». Методы, которые не следуют этому соглашению, не выполняются.
Чтобы увидеть, какие тесты будут выполняться без их запуска, мы можем использовать:

Код: Выделить всё

pytest --collect-only
А чтобы выполнить все тесты в нашем каталоге pytest-demo, я запускаю:

Код: Выделить всё

pytest pytest-demo
Если я не укажу каталог, Pytest будет работать в текущем каталоге по умолчанию.
Или я могу указать отдельные файлы, если я захочу это сделать.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 06 янв 2022, 21:24

Olej писал(а):
05 янв 2022, 23:45
К вопросу: где находятся тестовые скрипты Pytest :

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pwd
/home/olej/2022/Python/pytest

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ cat 1_test.py 
def inc(x):
    return x + 1

def test_answer():
    assert inc(3) == 5

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pytest
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/olej/2022/Python/pytest
collected 1 item                                                                                                                                                       

1_test.py F                                                                                                                                                      [100%]

=============================================================================== FAILURES ===============================================================================
_____________________________________________________________________________ test_answer ______________________________________________________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

1_test.py:7: AssertionError
======================================================================= short test summary info ========================================================================
FAILED 1_test.py::test_answer - assert 4 == 5
========================================================================== 1 failed in 0.03s ===========================================================================

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 06 янв 2022, 22:33

Olej писал(а):
05 янв 2022, 23:45
К вопросу: где находятся тестовые скрипты Pytest :
Тесты (все) в каталоге:

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ ls -l test_1 
итого 8
-rwxrwxr-x 1 olej olej 72 янв  6 20:29 1_test.py
-rwxrwxr-x 1 olej olej 54 янв  6 20:29 2_test.py

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pytest test_1
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/olej/2022/Python/pytest
collected 2 items                                                                                                                                                      

test_1/1_test.py F                                                                                                                                               [ 50%]
test_1/2_test.py .                                                                                                                                               [100%]

=============================================================================== FAILURES ===============================================================================
_____________________________________________________________________________ test_answer ______________________________________________________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_1/1_test.py:5: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_1/1_test.py::test_answer - assert 4 == 5
===================================================================== 1 failed, 1 passed in 0.03s ======================================================================

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Python: автоматизированное тестирование

Непрочитанное сообщение Olej » 06 янв 2022, 23:52

Olej писал(а):
06 янв 2022, 22:33
Тесты (все) в каталоге:
Или индивидуально указав тест:

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pytest test_1/2_test.py 
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/olej/2022/Python/pytest
collected 1 item                                                                                                                                                       

test_1/2_test.py .                                                                                                                                               [100%]

========================================================================== 1 passed in 0.01s ===========================================================================
Или даже указав списком файлов тестов:

Код: Выделить всё

(.venv) olej@R420:~/2022/Python/pytest$ pytest test_1/2_test.py test_1/1_test.py
========================================================================= test session starts ==========================================================================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/olej/2022/Python/pytest
collected 2 items                                                                                                                                                      

test_1/2_test.py .                                                                                                                                               [ 50%]
test_1/1_test.py F                                                                                                                                               [100%]

=============================================================================== FAILURES ===============================================================================
_____________________________________________________________________________ test_answer ______________________________________________________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_1/1_test.py:5: AssertionError
======================================================================= short test summary info ========================================================================
FAILED test_1/1_test.py::test_answer - assert 4 == 5
===================================================================== 1 failed, 1 passed in 0.03s ======================================================================

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей