Я использую Hound (https://github.com/HashNuke/hound) для интеграционного тестирования приложения Phoenix. У меня работает хром и хром без головы. Чтобы заставить его работать, у меня есть другое окно терминала, работающее chromedriver
(установлено через brew). Странно для меня. Есть ли библиотека или тестовая установка, которая будет более "интегрированной" в приложение? Как Elixir это делает?
В мире Ruby есть гем webdrivers
(https://github.com/titusfortner/webdrivers).. Насколько я знаю, он загружает указанный драйвер (скажем, chromedriver) в $ HOME. Затем при каждом запуске теста тест использует драйвер загружен в это место для выполнения тестов.
До драгоценного камня webdrivers
существовал камень chromedriver-helper
. До этого это были фантомы. Эти реализации сделали так, что для выполнения интеграционных тестов требуется 1: загрузка драйвера 2: запуск теста
В Elixir (с Hound) мои тесты работают, сначала запустив chromedriver --verbose
в разделенном терминале, а на другом экране я запускаю mix test
. Это прекрасно работает, но чувствует себя разобщенным. Это добавляет дополнительные шаги: 1: загрузить драйвер 2: запустить драйвер 3: запустить тест 4: остановить драйвер
Я мог бы написать скрипт вручную для запуска chromedriver в фоновом режиме и остановить его после запуска тестов.
Я новичок в сообществе Elixir и поэтому много исследовал. Мне до сих пор не ясно, есть ли «пройденный путь», по которому я должен идти, а не просто подключать все вручную.
Я пропустил рекомендуемую абстракцию? Это намеренно? Это "просто еще не создано"?
Спасибо