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
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