Pytest
  • Введение
  • Пример тестирования
  • fixture (Фикстуры)
    • Параметризация
    • декораторы в питоне
    • Пример использования
  • 📚Практика
    • API OpenWeatherMap
    • API OMDBapi
  • scope
  • Запуск тестов через терминал
    • пример иерархии каталогов для организации тестов и их запуска с помощью Pytest
  • argparse
    • Создание интерфейса командной строки
Powered by GitBook
On this page
  1. argparse

Создание интерфейса командной строки

Создание интерфейса командной строки (CLI) для ваших тестов позволит вам запускать тесты и управлять ими через командную строку, что облегчит их использование и автоматизацию. В Python вы можете использовать библиотеку argparse для создания CLI.

Вот пример того, как вы можете создать CLI для ваших тестов с использованием argparse:

import argparse  # Импортируем библиотеку argparse для обработки аргументов командной строки
import pytest    # Импортируем библиотеку pytest для запуска тестов
import sys       # Импортируем библиотеку sys для управления выходом из программы

def run_tests(args):
    # Формируем список аргументов для передачи в pytest
    pytest_args = []

    # Если указаны тестовые файлы, добавляем их в список аргументов
    if args.tests:
        pytest_args.extend(args.tests)

    # Если указана опция для генерации HTML-отчета, добавляем соответствующий аргумент
    if args.html_report:
        pytest_args.append("--html={}".format(args.html_report))

    # Запускаем тесты с использованием pytest и переданных аргументов
    exit_code = pytest.main(pytest_args)

    # Завершаем выполнение программы с кодом возврата, полученным от pytest
    sys.exit(exit_code)

def main():
    # Создаем парсер аргументов командной строки
    parser = argparse.ArgumentParser(description="CLI for running tests")

    # Определяем аргументы командной строки

    # Позиционный аргумент - список файлов с тестами
    parser.add_argument("tests", nargs="*", help="Specify test files to run")

    # Опциональный аргумент для генерации HTML-отчета
    parser.add_argument("--html-report", help="Generate HTML report")

    # Парсим переданные аргументы командной строки
    args = parser.parse_args()

    # Запускаем тесты с переданными аргументами
    run_tests(args)

if __name__ == "__main__":
    main()

Этот скрипт создает CLI для запуска тестов с определенными параметрами, такими как файлы тестов, покрытие кода и генерация HTML-отчета. Пример использования:

python test_cli.py test_file.py --html-report=report.html

В этом примере test_file.py - это файл с тестами, --coverage=my_module включает анализ покрытия для модуля my_module, и --html-report=report.html генерирует отчет в HTML формате с именем report.html. Вы можете передать свои собственные аргументы в скрипт в зависимости от ваших потребностей.

Теперь вы можете использовать этот скрипт следующим образом:

  • Запуск всех тестов без анализа покрытия:

    python test_cli.py
  • Запуск всех тестов с генерацией HTML-отчета:

    python test_cli.py --html-report=report.html
  • Запуск отдельного теста:

    python test_cli.py test_file.py

Обратите внимание, что если вы хотите добавить другие опции или функциональность, вы можете легко расширить этот скрипт в соответствии с вашими требованиями.

Previousargparse

Last updated 1 year ago