Данное руководство предполагает, что у вас установлены команды podman
(или docker
), go
(>= 1.21), node
(>= 16.10) и make
.
Цели вроде make start
автоматически переключатся на команду docker
, если podman
недоступен. Команду инструмента контейнера можно переопределить, установив переменную CONTAINER_TOOL
.
Если вы используете Visual Studio Code, запустите make vscode
, чтобы настроить интеграции для проекта.
# принудительно использовать podman
make start CONTAINER_TOOL=podman
# принудительно использовать docker
make start CONTAINER_TOOL=docker
Для создания кроссплатформенных образов контейнеров вам потребуется установить qemu-user-static
.
При использовании MacOS с podman
вы можете сделать это с помощью следующих одноразовых команд:
podman machine ssh sudo rpm-ostree install qemu-user-static
podman machine ssh sudo systemctl reboot
Чтобы выполнить локальную разработку с внешним трафиком, вам понадобится публично маршрутизируемый URL, и вы можете запустить localdev с установленным PUBLIC_URL
. Например:
make start PUBLIC_URL=http://localdev.example.com
Вы можете добавить дополнительные команды запуска в файл Procfile.local
, чтобы они автоматически запускались с make start
и аналогичными командами.
ngrok: ngrok http -subdomain=localdev 3030
GoAlert создан и протестирован на Postgres 13. Версия 11+ должна работать на момент написания статьи.
Самый простой способ настроить Postgres для разработки — запустить make postgres
. Вы можете подключиться к локальной БД по адресу postgres://goalert@localhost:5432/goalert
(без пароля). Это запустит контейнер с правильной конфигурацией для среды разработки.
Если у вас уже запущен Postgres, вы можете создать роль goalert
.
CREATE ROLE goalert WITH LOGIN SUPERUSER;
В настоящее время пользователь dev должен быть суперпользователем, чтобы включить pgcrypto
с CREATE EXTENSION
.
make regendb
, чтобы перенести данные и добавить тестовые данные в БД (вы также можете масштабировать количество случайных данных с помощью SIZE
, например make regendb SIZE=10
). Сюда входит добавление администратора admin/admin123
.make start
.make bin/goalert BUNDLE=1
.Чтобы запустить автоматизированные тесты браузера, вы можете запустить Cypress в одном из следующих режимов:
make cy-wide
Широкоформатный режим, в режиме разработчика.make cy-mobile
Мобильный формат, в режиме разработчика.make cy-wide-prod
Широкоформатный формат, производственная сборка.make cy-mobile-prod
Мобильный формат, производственная сборка.make cy-wide-prod-run
Широкоформатный формат, производственная сборка в безголовом режиме.make cy-mobile-prod-run
Мобильный формат, производственная сборка в безголовом режиме.Пользовательский интерфейс Cypress должен запускаться автоматически.
Более подробную информацию о тестах браузера можно найти здесь.
Чтобы запустить автоматизированные браузерные тесты, вы можете запустить Playwright в одном из следующих режимов:
make playwright-ui
Запустить все тесты в режиме пользовательского интерфейса.make playwright-run
Запустите все тесты в безголовом режиме.Набор функциональных/поведенческих тестов поддерживается для бэкэнд-кода. Они проверяют различные API и поведение серверного компонента GoAlert.
Запустите полный набор с make test-smoke
.
Более подробную информацию о дымовых тестах можно найти здесь.
Все модульные тесты можно запустить с помощью make test-unit
.
Модульные тесты пользовательского интерфейса находятся в каталоге файла, который тестируется, с тем же именем файла, добавленным .test.js
. Их можно запускать независимо от модульных тестов Go с помощью make jest
. Режим наблюдения можно включить с помощью make jest JEST_ARGS=--watch
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )