Flask API тестового CLI-раннера

FlaskCliRunner основан на CliRunner из Click и используется для тестирования команд Flask CLI.

С помощьюapp.test_cli_runner()создать экземпляр.


Метод создания

Метод Описание
app.test_cli_runner(**kwargs) Создаёт тестовый CLI-раннер. kwargs передаются в конструктор CliRunner

Основные методы

Методы Описание
invoke(cli=None, args=None, **kwargs) Вызывает команду CLI. По умолчанию используется app.cli. Возвращает объект click.testing.Result.

Атрибуты объекта Result

Свойство Описание
exit_code Код завершения команды. 0 означает успешное выполнение
output Содержимое стандартного вывода команды (str)
исключение Если команда выбрасывает исключение, здесь содержится объект исключения.

Примеры кода

Пример

from app import create_app

app = create_app()
runner = app.test_cli_runner()

# Тестирование встроенных команд
result = runner.invoke(args=["routes"])
assert result.exit_code == 0
assert "/api/posts" in result.output

# Тестирование пользовательских команд
result = runner.invoke(args=["init-db"])
assert result.exit_code == 0

# Тестирование команд с аргументами
result = runner.invoke(args=["greet", "--name", "EXAMPLE"])
assert "EXAMPLE" in result.output

# Напрямую используйте invoke для тестирования CLI-группы приложения
result = runner.invoke(app.cli, ["run", "--help"])
assert result.exit_code == 0
Другие расширения