Управление ненадежными тестами

Azure DevOps Services

Производительность для разработчиков зависит от возможности тестов своевременно и надежно находить реальные проблемы с разрабатываемым или обновленным кодом. Ненадежные тесты представляют собой барьер для поиска реальных проблем, так как сбои часто не связаны с тестируемыми изменениями. Ненадежный тест — это тест, который предоставляет различные результаты, такие как пройденный или неудачный, даже если в исходном коде или среде выполнения нет изменений. Ненадежные тесты также влияют на качество поставляемого кода.

Примечание

Эта функция доступна только в Azure DevOps Services. Как правило, новые функции сначала появляются в облачной службе, а затем становятся доступными локально в следующей основной версии или обновлении Azure DevOps Server. Дополнительные сведения см. в статье Временная шкала функций Azure DevOps.

Цель реализации ненадежного управления тестами в продукте заключается в том, чтобы уменьшить боль разработчика, вызываемую вялыми тестами, и удовлетворить весь рабочий процесс. Ненадежное управление тестами обеспечивает следующие преимущества.

  • Обнаружение — автоматическое обнаружение нестрогого теста с повторным запуском или расширяемостью для подключения к собственному пользовательскому методу обнаружения

  • Управление ненавязчивостью . После того как тест помечается как ненадежный, данные будут доступны для всех конвейеров для этой ветви.

  • Отчет о ненадежных тестах — возможность выбора того, следует ли предотвращать сбои сборки, вызванные нестрогими тестами, или использовать ненадежный тег только для устранения неполадок.

  • Решение . Создание ошибок вручную или ручная маркировка и отмена пометки теста как ненадежного на основе анализа

  • Закрытие цикла — сброс ненадежного теста в результате устранения ошибок или ввода вручную

Жизненный цикл Flaky

Включение управления ненадежными тестами

Чтобы настроить нестрогое управление тестами, выберите Параметры проекта и выберите Управление тестами в разделе Конвейеры .

Переместите кнопку Вкл./Выкл. в положение Вкл.

Снимок экрана: управление тестами, включенное обнаружение тестов Flaky, обнаружение системы.

По умолчанию для всех проектов используется нестрогое тестирование для устранения неполадок.

Обнаружение ненавязких тестов

Управление тестами flaky поддерживает системное и пользовательское обнаружение.

  • Обнаружение системы. При обнаружении в продукте используются данные повторного запуска теста. Обнаружение выполняется с помощью повторного запуска задачи VSTest возможности неудачных тестов или повторных попыток этапа в конвейере. В проекте можно выбрать определенные конвейеры, для которых требуется обнаружить ненадежные тесты.

    Примечание

    После того как тест помечается как ненадежный, данные будут доступны для всех конвейеров для этой ветви, чтобы помочь в устранении неполадок в каждом конвейере.

  • Пользовательское обнаружение. Вы можете интегрировать собственный механизм обнаружения ненадежных данных с Azure Pipelines и использовать возможность создания отчетов. При пользовательском обнаружении необходимо обновить метаданные результатов теста для ненадежных тестов. Дополнительные сведения см . в разделах Результаты теста, Метаданные результатов — обновление REST API.

Снимок экрана: управление тестами, включенное обнаружение тестов Flaky, пользовательское обнаружение.

Параметры ненавязких тестов

Параметры теста Flaky указывают, как в отчетах о тестах доступны нечеткие тесты, а также возможности разрешения, как описано в следующих разделах.

Управление ненадежными тестами и создание отчетов

На странице Управление тестами в разделе Параметры теста Flaky можно задать параметры включения нестрогого теста в отчет Сводка по тестам. В разделе Результаты теста доступны ненадежные данные теста как для пройденного, так и для неудачного теста. Тег Flaky помогает определить ненадежные тесты. По умолчанию в сводку по тестам включены ненавязливые тесты. Тем не менее, если вы хотите убедиться, что сбои тестов не завершаются сбоем конвейера, можно не включать их в сводку теста и подавлять сбой теста. Этот параметр гарантирует, что неоправдаемые тесты (как пройденные, так и неудачные) будут удалены из процента пройденных тестов и показаны в разделе Тесты не сообщались, как показано на следующем снимке экрана.

Ненадежные отчеты

Примечание

Сводный отчет о тестировании обновляется только для задач Тестирования Visual Studio и Публикации результатов теста. Может потребоваться добавить пользовательский скрипт для подавления нестрогого теста для других сценариев.

Тесты, помеченные как flaky

Вы можете пометить тест как ненадежный на основе анализа или контекста, выбрав Flaky (или UnFlaky, в зависимости от того, помечен ли тест как flaky).

Тест Mark flaky

Если в конвейере тест помечается как ненадежный или неукротимый, в текущем конвейере не вносятся никакие изменения. Только при будущих выполнениях этого теста оценивается измененный параметр flaky. Тесты, помеченные как flaky, имеют тег Помеченный flaky в пользовательском интерфейсе.

Подтверждение ненадежного теста

Справка и поддержка