Создание интерфейса командной строки (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-отчета. Пример использования:
В этом примере 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
Обратите внимание, что если вы хотите добавить другие опции или функциональность, вы можете легко расширить этот скрипт в соответствии с вашими требованиями.