Более простой способ тестирования приложений Dash
Рекомендуемый способ тестирования приложения Dash, как указано в документации, - создать экземпляр вашего приложения в рамках тестовой функции.
Это своего рода боль, потому что вам нужно переписать все приложение в тестовой функции!
Но есть способ попроще…
Использование приложения для импорта
Прежде всего, за это очень элегантное решение стоит заслуга takaakifuruse of ploty forum favourite.
Для этого вы используете модуль import_app
из dash.testing.application_runners
. Таким образом, вам не нужно переписывать все приложение целиком, а вместо этого можно просто импортировать его в свою тестовую функцию.
Но прежде чем вы это сделаете, вам нужно сделать несколько шагов:
- Создайте новый каталог! Я назвал свой dash_test.
- В этом каталоге создайте пустой файл __init__.py, файл app.py, в который вы копируете все свое приложение, и файл test_one.py, который мы заполним позже.
- Запустите
pip install "dash[testing]"
иpip install pytest
. - Затем вам нужно установить веб-драйвер, поскольку dash.testing использует селен для проверки правильности загрузки вашего приложения. Это может быть довольно неудобно, поэтому вот как это сделать на Mac… Загрузите версию webdriver для Mac с этого сайта; на момент написания это должна была быть версия 84. Затем переместите его в каталог usr / local / bin, чтобы он находился по пути.
Напишите свой тест
Пришло время написать ваш настоящий тест ...
Вот код, который я написал для этого, и проанализирую его шаг за шагом.
Во-первых, вы импортируете import_app
функцию, чтобы сделать вашу жизнь намного проще. Затем вы пишете пользовательскую тестовую функцию, имя которой должно быть в формате идентификатора тестового примера pytest - это аббревиатура в шаблоне mmffdd, где m означает модуль, f - файл, а d - три цифры, которые передают число. вашего тестового примера.
Я не думаю, что этот формат хорошо соответствует приложению Dash, поэтому для большей ясности в приведенном выше примере я написал bb для Black Lives Matter, который является темой моего приложения, aaa для приложения, поскольку имя файла, которое я тестировал был app.py и 001, так как это был первый тест.
Затем вы пишете dash_duo.start_server(app)
, чтобы запустить экземпляр селена, который загрузит ваше приложение Dash в сеансе браузера; таким образом вы можете проверить, все ли работает нормально. Довольно здорово! Если ваше приложение уже размещено, вы можете вместо этого написать dash_br.server_url = "Hosted URL"
.
После этого вам нужно указать текст и соответствующий ему тег html; Это гарантирует, что вы не начнете тестирование приложения, пока оно не загрузится должным образом.
Как только это будет сделано, вы можете писать утверждения для проверки конкретных ожиданий и ценностей, которые вас интересуют, как в двух приведенных выше примерах.
Как запустить тест
Чтобы это произошло, убедитесь, что вы находитесь в корневом каталоге вашего проекта Dash, а затем введите python -m pytest dash_test/
или другое название каталога тестирования Dash.
Вам может потребоваться установить еще несколько зависимостей pytest, чтобы это работало на вашем компьютере; Надеюсь, это будет довольно просто, если вы выполнили шаги, описанные выше, чтобы все настроить правильно.
Python на простом английском
Вы знали, что у нас есть три публикации и канал на YouTube? Найдите ссылки на все на plainenglish.io!