Куди подати невдалий тест?


14

Я просто змінив налаштування гілки в моєму сховищі GitHub, так що моя [наступна] гілка вимагає проходження збірки CI через запит на витяг.

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

Заради контексту ...

Сховище має [майстер] гілка , яка тільки PR'd в коли є реліз, так [майстер] містить код від останнього релізу, незалежно від того, чи є воно основним, неповнолітнім, виправлення, бета, альфа / збірка до випуску

[Наступна] гілка - це "за замовчуванням", де ми маємо намір зберегти "готовий до випуску" код; технічно ця гілка може бути PR'd в [майстер] будь-який час і випущена.

Окремі вилки мають власні відділення розробників та учасників PR до [наступного].

Коли я переглядаю нетривіальний PR, я з’єднаю відділ розробок дописувача до моєї гілки "перегляду", і якщо я побачу, що я можу швидко виправити, я зроблю / натисніть зміни та нові (іноді невдалі) тести та PR назад у відділення розробки дописувача; коли вони зливають мої зміни, змушують пройти нові невдалі тести, а потім натиснути, їх PR синхронізується, і тоді я об'єднаю PR в [наступний].

Але це питання не про проходження тестів, а про невдалі .


Невдалі тести документують, що потрібно виправити.

Для відомих помилок повинні бути написані тести, щоб ми знали, що не працює.

Технічно список видань GitHub (відфільтрований за та / або мітками ) теж робить це. Чи є хорошою практикою також мати купу провальних тестів для документування помилок?

Невдала робота над [наступним] означала б, що ми не готові до випуску ... але тоді "бути готовим до випуску" - це на зразок "бути готовим" мати дітей - ти ніколи не готовий до цього, і щось, десь (зі змінною важливістю) неминуче піде не так з випуском.


Таким чином, ми лише коли-небудь підштовхуємо проходження тестів до [наступного]. Куди потім натиснути невдалі тести? Я маю на увазі, поза межами PR / перегляду?

Наприклад, користувач повідомляє про нову помилку у списку проблем, і я хотів би написати для неї невдалий тестовий набір - щоб вказати, що потрібно робити і де, що спрощує нові учасники пошуку і врешті-решт PR виправлення.

Куди мені слід підштовхувати ці невдалі тести? Або навіть це гарна ідея просунути невдалі тести куди-небудь?


@PhilipKendall хороший момент! ми все ще налагоджуємо наш процес; Мені не подобається, як VS "проігнорує" тести разом із "непереконливими" тестами - якщо один із тестів нижчого рівня виявляється невдалим, ми не хочемо, щоб половина тестів вийшли з ладу, тому ми робимо їх непереконливими, коли передумови не виконуються. ; це робить тести повідомляти про збій з правильних причин і "непереконливим", коли вони не можуть перевірити те, для чого вони були написані. У нас таких немає (вже більше), тому ігнорування їх може бути варіантом ... але тоді, чи невдалий тест, якщо він ігнорується ?
Матьє Гіндон

Чому частина рецензування передбачає написання будь-якого коду? Якщо ви бачите помилку, ви коментуєте в PR і, за бажанням, відхиляєте PR.
Джеймс

@James добре, мені подобається писати код .. окрім того, як приєднується більше дописувачів, я роблю більше і більше роботи з обслуговування GitHub та PR (зв'язки з громадськістю), ніж фактичне кодування!
Матьє Гіндон

Відповіді:


11

Що я б робив у цій ситуації - це позначити провальний тест як "проігнорований" - таким чином у вас все ще є тест, щоб ви знали, що вам потрібно виправити в майбутньому, але ви не збираєтеся в кінцевому рахунку зі зламаними складаннями .

Якщо ви також позначаєте тест кожним тестом із посиланням на відстеження проблем для вирішення проблеми, це дає простий спосіб зв’язати речі.


4

Повне розкриття інформації: Я один із учасників дискусії.

Основна гілка сховища - це не головна гілка. Злиття в майстер не виконує жодної "фактичної мети", і ця гілка не робить те, що повинна робити гілка (а саме рухатися ).
Ви зловживаєте цією гілкою як Тег до останнього випуску.

Замість гілки використовуйте тег. Коли ви хочете випустити, ви робите необхідні кроки у "Відділі-відділенні", як і тематична гілка. Потім ви з’єднуєте це з [наступним] і ставите тег на нього.

Роль, яку [наступний] виконує, грає головну галузь. Тільки код готовий до випуску надходить туди. Все інше було б [розвиватись] галуззю. Галузь розвитку містить роботу, яку потрібно стабілізувати . Це означає: видаліть [master], перестановіть [next] так, як ви це вже зробили, і створіть іншу гілку для "менш стабільної" роботи.

Оскільки це скоріше виняток, ніж правило, що необхідно провести невдалі тести, які нагадують про видатні помилки, це не повинно бути великою проблемою для створення та знищення цієї менш стабільної гілки за потребою.


1
Наявність останнього випуску в [master] спрощує відгалуження останнього випуску для видачі виправлення; то виправлення може бути PR'd у [наступному], а звідти у кожну гілку розробників .. чи я щось пропускаю?
Матьє Гіндон

2
Ви можете просто git checkout -b HotFix ReleaseTag(тобто якщо я добре пам’ятаю гілку, що створювала синтаксис оформлення замовлення). Це має створити відділення HotFix від ReleaseTag
Vogel612,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.