Chromium Chronicle #14: Добавление тестов в водопад

Эпизод 14: Чжаоян Ли на MTV и Эрик Алешир в TOK (октябрь 2020 г.)
Предыдущие серии

Хотите обнаружить регрессию вашей новой функции в Chrome? Добавляйте свои тесты в водопад (инфраструктуру непрерывной сборки и тестирования Chrome)!

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

Должны ли новые тесты размещаться в совершенно новом пакете или просто добавляться к существующему?

  • Тесты организованы в наборы тестов по близости к источнику и теме. Если ваши новые тесты логически не вписываются в какой-либо существующий пакет, вам, вероятно, понадобится новый пакет.

Должны ли тесты проводиться на общедоступном сборщике или на внутреннем сборщике?

  • Используйте внутренний сборщик, если код находится во внутреннем репозитории или тесты включают конфиденциальные данные .

Должны ли тесты выполняться в FYI CI, основном CI или очереди фиксации (CQ)?

  • К вашему сведению, CI требует вашего самоконтроля и используется для уточнения тестов или экспериментов.
  • Основные тесты CI регулярно контролируются шерифами.
  • CQ блокирует отправку CL в случае сбоя, но требует больше инфраструктурных ресурсов . Новый пакет всегда должен начинаться с CI, прежде чем повышаться до CQ .
  • Если вы не уверены, команда EngProd вашей платформы может помочь вам принять решение.

У меня уже есть набор тестов, работающий в CI, как мне добавить его в CQ? / Что, если мне понадобится новый застройщик?

Как добавить набор тестов в существующий конструктор

Чтобы добавить набор тестов в существующий сборщик , вам необходимо настроить некоторые файлы в //src/testing/buildbot/ :

  1. Создайте ключ в gn_isolate_map.pyl для нового набора тестов с меткой цели теста и введите информацию.
  2. Добавьте этот ключ в тестовую группу в test_suites.pyl . (Вы можете найти сопоставление имени строителя с тестовыми группами в сборщике в waterfalls.pyl .)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Больше тонких настроек.

    • mixins.pyl содержит аргументы , которые можно применять к группе тестов на разных уровнях группы.
    • variants.pyl помогает запускать набор в нескольких экземплярах с разными аргументами .
  4. Восстановите файлы конфигурации , generate_buildbot_json.py .

После этого достаточно просто проверить изменения конфигурации; сборщики, запускающие этот пакет, автоматически подберут новые тесты, и результаты начнут поступать в веб-интерфейс сборщика на водопаде - вместе с большим количеством отладочной информации на случай сбоев!