Более простой способ тестирования приложений Dash

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

Это своего рода боль, потому что вам нужно переписать все приложение в тестовой функции!

Но есть способ попроще…

Использование приложения для импорта

Прежде всего, за это очень элегантное решение стоит заслуга takaakifuruse of ploty forum favourite.

Для этого вы используете модуль import_app из dash.testing.application_runners. Таким образом, вам не нужно переписывать все приложение целиком, а вместо этого можно просто импортировать его в свою тестовую функцию.

Но прежде чем вы это сделаете, вам нужно сделать несколько шагов:

  1. Создайте новый каталог! Я назвал свой dash_test.
  2. В этом каталоге создайте пустой файл __init__.py, файл app.py, в который вы копируете все свое приложение, и файл test_one.py, который мы заполним позже.
  3. Запустите pip install "dash[testing]" и pip install pytest.
  4. Затем вам нужно установить веб-драйвер, поскольку 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!