Должны ли вы тестировать весь свой проект каждый раз, когда делается пуш?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Должны ли вы тестировать весь свой проект каждый раз, когда делается пуш?

Сообщение Anonymous »

Отказ от ответственности: я почти ничего не знаю о DevOps, и мне было поручено реализовать CI/CD для этого проекта. Мой вопрос может быть неясным и недостаточно подробным, поэтому любые рекомендации будут оценены по достоинству. Пожалуйста, аккуратно поправьте меня и скажите, что я могу сделать, чтобы улучшить свой вопрос :)
Я использую PHPUnit 10.5 для тестирования своего проекта на PHP 8.1, который размещен на ГитЛаб. Проект развернут на множестве разных серверов, включая тестовый сервер и множество рабочих серверов.
Вопрос
При настройке файла YAML для автоматизировать тесты, мне в голову пришел вопрос:
Должен ли test_job запускать все тесты при каждом запуске конвейера? Существует ли какая-либо передовая практика или соглашение по этому поводу?
Контекст
Проект, над которым я работаю, огромен, и в нем нет ничего о непрерывная интеграция или непрерывное развертывание еще не реализованы. Я начинаю с нуля.
Я подумал, что лучший способ начать — это создать несколько тестовых файлов, настроить файл YAML и запустить несколько конвейеров, чтобы я мог изучить основы и что-то получить. для начала.
Тогда я понял, насколько велик проект и сколько времени потребуется, чтобы провести все тесты. Просто невозможно запускать их все каждый раз, когда разработчик добавляет в репозиторий.
Направления исследования
Могло бы быть разделение тестов на наборы тестов. решить эту проблему; однако как мне узнать, какой набор тестов запускать?
Я подумал о двух вариантах:

[*] Подход на основе сопоставления:
  • Проверьте файлы, которые были изменены в результате коммитов, и используйте сопоставление, чтобы узнать, какие из них были изменены. набор тестов охватывает эти конкретные файлы.
  • Проблема в том, что это решение вообще не является динамическим, и конвейер не сможет запуститься заново. добавленные файлы или тесты, если их нет в сопоставлении. Кроме того, жестко запрограммировать сопоставление в конфигурации — плохая практика.
< li>Подход на основе покрытия:
  • Проверьте файлы, которые были изменены, и используйте информацию о покрытии. каждого набора тестов, чтобы определить, какой набор тестов охватывает файлы из коммита.
  • Проблема здесь в том, что у меня нет опыта покрытия кода. инструменты, и я не уверен, что усилия, затраченные на их изучение, решат проблему.

Мои нынешние подходы должны иметь больше возможностей и потенциально больше проблем. Я был бы рад, если бы вы рассказали мне о них.
Я считаю, что эта проблема характерна для крупных проектов, но мне не удалось найти ресурсы или рекомендации, которые могли бы мне помочь. Как бы вы это сделали?

Подробнее здесь: https://stackoverflow.com/questions/786 ... sh-is-made
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»