Перейти к содержимому

Аналитика тестов Elixir

Hex-пакет Tuist загружает результаты тестов вашего проекта на Elixir после каждого запуска, обеспечивая видимость производительности тестов и нестабильных тестов прямо в панели управления Tuist.

Требования

Отправка отчетов о запусках тестов#

Общая настройка устанавливает интеграцию тестирования. Продолжайте использовать mix test, с теми же аргументами, выводом и кодом выхода:

bash
mix test test/my_app_test.exs:12 --trace

Tuist отправляет отчет о запуске по его завершении; дополнительный алиас для тестов не требуется.

Вы можете получить доступ к аналитике тестов в панели управления Tuist и увидеть, как она меняется со временем:

Панель тестов приложения Phoenix

Что отслеживается#

Пакет собирает результаты ExUnit, включая:

  • Статус прохождения/сбоя отдельного теста и его длительность
  • Модуль и блок describe, к которому относится каждый тест
  • Сообщение и местоположение каждой ошибки
  • Обнаружение нестабильных тестов между запусками
  • Ветка и коммит, а в непрерывной интеграции — провайдер и запуск
  • В непрерывной интеграции — история Git клонированного репозитория

Doctests отправляются так же, как и любые другие тесты. С опцией --cover также загружается покрытие строк кода запуска: см. Покрытие кода Elixir.

Note

Пакет отправляет отчеты через форматтер ExUnit, который добавляется к уже используемым вами. Если вы передаете --formatter в командной строке, Mix заменяет весь список, поэтому запуск не отправляется, и задача предупреждает вас об этом.

История Git#

В непрерывной интеграции пакет также загружает историю коммитов клонированного репозитория: SHA коммитов, их родителей, даты коммитов и ветку, в которой выполнялся запуск и базовая ветка pull request. Содержимое файлов, сообщения коммитов или авторы не загружаются. Это позволяет Tuist определить, какие коммиты попали в вашу основную ветку, например, те, которые проверяла очередь слияния. Пакет читает историю, которая уже есть в клонированном репозитории, а если в нем нет базовой ветки, запрашивает у удаленного репозитория последний коммит (git ls-remote). Вне режима покрытия кода (--cover) история не загружается.

Переменная Эффект
TUIST_GIT_UPLOAD_ENABLED=false Не читает и не загружает историю Git.
TUIST_GIT_UNSHALLOW_ENABLED=false Читает только клонированный репозиторий, без обращения к удаленному.

Устранение неполадок#

Отправка отчетов никогда не меняет результат ваших тестов: если отчет не может быть отправлен, запуск завершается так, как должен был, и ничего не выводится. Чтобы узнать, почему отчет не был отправлен, установите TUIST_DEBUG=1:

bash
TUIST_DEBUG=1 mix test