День в жизни разработчика devops: приостановка работы, исправление ошибки и проведение проверки кода
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Функции Проверки кода и работы Visual Studio поддерживают переключение контекста с одного потока работы на другой. Кроме того, участники группы могут легко обмениваться сообщениями о предлагаемых изменениях в коде. В этой статье показаны эти функции, продолжая учебник из Day в жизни разработчика devops: написание нового кода для истории пользователя.
Примечание.
Функции проверки кода и работы Visual Studio доступны со следующими выпусками:
- Visual Studio 2022: Visual Studio Community, Visual Studio Professional и Visual Studio Enterprise
- Visual Studio 2019: Visual Studio Professional и Visual Studio Enterprise
В этом руководстве описывается, как приостановить работу с текущей задачей, чтобы немедленно устранить ошибку, которая блокирует товарищей по команде в другом рабочем элементе. После исправления ошибки вы можете попросить коллег просмотреть исправление и после прохождения проверки проверка в исправлении и возобновлении работы с исходной задачей.
Приостановка текущей работы
Хотя вы работаете над элементом невыполненной работы, вы можете узнать об ошибке в другом элементе, который блокирует товарищей по команде. Если это область, с которой вы знакомы, вы можете создать задачу, чтобы устранить ошибку и назначить ее себе, чтобы немедленно работать над ней.
Прежде чем начать работу с новой ошибкой, необходимо убедиться, что текущая работа отложена в безопасном месте на сервере команды. В visual Studio Team Обозреватель на странице "Моя работа" выберите "Приостановить", чтобы сохранить на сервере:
Все выполненные действия, включая изменения в коде, тестах и других файлах.
Открытые решения, окна, точки останова, переменные окна просмотра и другие биты состояния Visual Studio.
Теперь, когда рабочая область чиста, перетащите новую задачу из доступных рабочих элементов в "Выполняется работа". Вы готовы изучить и написать исправление.
Примечание.
Рабочий контекст связан с рабочими элементами, которые отображаются как "Ход выполнения " на странице "Моя работа ". С помощью приостановки и возобновления можно быстро переключаться между различными задачами. Открытые решения и файлы, изменения кода и макет Visual Studio переключаются вместе.
Приостановка текущей работы и начало работы с другой задачей
Переключите контекст работы:
Если вы еще не подключены к проекту, в который вы хотите работать, подключитесь к проекту.
На домашней странице команды Обозреватель выберите "Моя работа".
На странице "Моя работа" в разделе "Ход выполнения работы" выберите "Приостановить".
В появившемся поле при необходимости измените имя, которое вы хотите предоставить этому набору приостановленной работы, а затем нажмите кнопку "Приостановить". Элемент отображается в разделе "Приостановленная работа".
Перетащите рабочий элемент из доступных рабочих элементов в "Выполняется работа". Кроме того, можно переключиться на рабочий элемент, который вы ранее приостановили, перетащив его из приостановленной работы.
Если рабочий элемент, который вы хотите назначить себе, не отображается в разделе "Доступные рабочие элементы", можно:
- Создайте новую задачу или другой рабочий элемент, выбрав "Создать".
- Выберите другой запрос, выбрав "Открыть запрос".
Совет
Ссылки на текущие изменения кода и состояние Visual Studio. Чтобы разрешить Visual Studio организовать работу, убедитесь, что соответствующие элементы находятся в состоянии "Выполняется работа " при переходе с одной задачи на другую.
Исследование ошибки
Откройте новую ошибку и прочитайте описание. В этом примере описание участником тестовой группы указывает, что платный счет иногда неправильно помечен как неоплаченный. Моментальный снимок среды лаборатории присоединен к рабочему элементу ошибки. Вы открываете виртуальную машину, на которой был запущен тест, увидите неверный счет и выполните шаг назад в журнале IntelliTrace. Вы можете отследить ошибку до следующего метода:
public class LocalMath
{
public static bool EqualTo(double a, double b)
{
return a == b;
}
В журнале IntelliTrace показано, что иногда метод возвращает значение false, так как параметры отличаются крайне небольшим количеством. Вы знаете, что округление ошибок такого рода неизбежно в арифметике с плавающей запятой, и что это плохая практика для проверки чисел с плавающей запятой для равенства.
Расширение тестов для отображения ошибки
При обнаружении ошибки показано, что в модульных тестах был разрыв или что тест не соответствовал фактическим потребностям пользователей. Поэтому перед исправлением ошибки добавьте тест, демонстрирующий наличие этой ошибки:
// Added 2022-02-02 for bug 654321:
/// <summary>
/// Make sure that number equality test allows for
/// small rounding errors.
/// </summary>
[TestMethod]
public void TestDoublesEqual()
{
// Allow a rounding error of 1 in 1000000:
TestEqual(1, 1e-7, true); // Less than allowed error
TestEqual(1, 1e-5, false); // More than allowed error
TestEqual(1000, 1e-7, true); // Less than allowed error
TestEqual(1000, 1e-5, false); // More than allowed error
}
private void TestEqual(double value, double error, bool result)
{
// Try different combinations of error and value:
Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));
Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));
Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));
Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));
}
Запустите тест, и он завершается ошибкой, как ожидалось.
Прохождение тестов
Исправление кода:
public static bool EqualTo(double a, double b)
{
// Allow for rounding errors.
// For example, a == 2.0 and b = 1.99999999999
const double allowedError = 1/1000000;
return System.Math.Abs(a - b) < allowedError;
}
Теперь тест проходит:
Запрос проверки кода
Когда вы удовлетворены исправлением ошибки, еще не проверка в работе. Teams используют проверки кода для повышения общего качества кода и снижения риска создания дополнительных ошибок. Используйте командную Обозреватель, чтобы запросить проверки кода от товарищей по команде.
Запрос проверки кода
В команде Обозреватель на странице "Моя работа" в разделе "Работа по ходу выполнения" выберите "Проверка запроса".
Откроется страница "Проверка кода".
- Введите имя поля рецензента, укажите один или несколько рецензентов и нажмите клавишу ВВОД после каждого выбора.
- В следующем поле измените имя проверки, если хотите.
- В следующем поле убедитесь, что отображается правильный путь к области.
- В следующем поле введите необязательное описание.
Выберите "Отправить запрос".
Рецензенты уведомляются о запросе по электронной почте.
Вы также можете запросить проверку кода приостановленной работы, набора полок или набора изменений. Чтобы просмотреть список наборов изменений, откройте элемент управления версиями Обозреватель и нажмите кнопку "Журнал".
Проверка кода
Рецензент может принять запрос на проверку кода. Рецензент проверяет код, записывает некоторые комментарии на уровнях файлов и блоков кода, а затем отправляет отзыв кода вам. Запрашиваемый рецензент, который слишком занят, чтобы проверить код, может отказаться от проверки.
В комментариях рецензент указывает на то, что тест неправ. Допустимая ошибка должна быть указанной частью входных значений, а не константным количеством. Поэтому тест должен умножить ошибку на значение.
// We allow a rounding error of 1 in 1000000
// as a fraction of the value:
TestEqual(1, 1e-7, true); // Less than allowed error
TestEqual(1, 1e-5, false); // More than allowed error
TestEqual(1000, 1000*1e-7, true); // Less than allowed error
TestEqual(1000, 1000*1e-5, false); // More than allowed error
Совет
Участники команды используют тесты в качестве фокуса для обсуждения. Если тесты являются правильными и достаточными, код будет также. В отличие от кода, каждый тест представляет отдельный случай. По этой причине тесты часто проще обсуждать, чем код.
Выполнение проверки кода
На странице "Моя работа" в команде Обозреватель щелкните правой кнопкой мыши проверку кода в разделе "Проверки кода" и выберите "Открыть".
Откроется страница проверки кода.
На странице "Проверка кода" можно:
Нажмите кнопку "Добавить рецензента ", чтобы добавить других рецензентов в запрос проверки кода.
Выберите каждую ссылку на файл, чтобы просмотреть изменения в файлах, которые были обновлены для этого рабочего элемента.
Используйте комментарии для обсуждения изменений с автором и другими рецензентами.
Чтобы добавить примечания, выполните приведенные далее действия.
- Нажмите кнопку "Добавить общий комментарий", чтобы добавить общий комментарий к обзору.
- При просмотре файла выберите строку или блок кода, щелкните правой кнопкой мыши и выберите " Добавить комментарий".
После добавления каждого комментария нажмите кнопку "Сохранить " или нажмите клавиши CTRL+ВВОД.
Когда вы завершите ввод комментариев, нажмите кнопку "Отправить примечания ", чтобы сделать ваши вклады видимыми для автора и других рецензентов.
Реагирование на проверку кода
Вы получаете и отвечаете на проверку кода от рецензентов. Вы и рецензенты могут обмениваться комментариями так же часто, как вам нравится. Проверка заканчивается при закрытии.
Реагирование на проверку кода
В команде Обозреватель на странице "Моя работа" перейдите в раздел "Проверки кода" и дважды щелкните запрос или щелкните правой кнопкой мыши запрос и нажмите кнопку "Открыть".
Откроется страница проверки кода.
В разделе "Комментарии" прочитайте комментарии и ответьте на них по мере необходимости. Чтобы ответить на комментарий, нажмите кнопку "Ответить", введите комментарий в появившемся поле и нажмите кнопку "ОК".
Чтобы просмотреть файл и просмотреть блоки кода, имеющие комментарии, или изменить или закомментировать файл, перейдите в подраздел "Файлы ". Щелкните файл правой кнопкой мыши и выберите один из следующих вариантов:
- Сравнение (только для чтения)
- Изменение локального файла или
- Добавление комментария к файлу
Вы также можете выбрать проверка box рядом с комментарием, чтобы указать, что комментарий был устранен.
Чтобы отправить комментарии, нажмите кнопку "Отправить комментарии".
Когда вы и другие рецензенты завершают отвечать на комментарии друг друга, и вы готовы закрыть проверку, нажмите кнопку "Закрыть проверку", а затем выберите:
- Завершено , чтобы указать, что проверка завершена или
- Отказаться, чтобы указать, что вы отменяете проверку.
Исправление теста и кода
После чтения примечаний к рецензированием вы можете исправить модульный тест, как показано. Теперь тест завершается ошибкой. В этом примере показано, что код еще не исправен.
Исправлен код:
/// <summary>
/// Returns true if two numbers are equal.
/// </summary>
public static bool EqualTo(double a, double b)
{
// Allow for rounding errors.
const double allowedErrorMultiple = 1/1000000;
double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;
return System.Math.Abs(a - b) < allowedError;
}
Тест проходит еще раз.
Совет
Чтобы устранить ошибку, выполните ту же практику, что и в разработке кода. Напишите тест, который завершается сбоем, а затем выполните тестовый проход. Проверьте код и тесты только в том случае, если тесты проходят.
Теперь обратите внимание на тестовый случай, в котором обнаружена ошибка. Действия по воспроизведению ошибки четко описаны в рабочем элементе тестового дела. Выполните действия и обнаружите, что счета указаны правильно.
Проверка исправления
Вы проверка в фиксированном коде и модульных тестах. Состояние ошибки автоматически устанавливается в значение "Разрешено", а значение "Назначенный кому " автоматически переназначается участнику тестовой группы, обнаруживавшей ошибку. Этот член группы проверяет, исправлена ли ошибка и закройте рабочий элемент.
Проверка в исправлении
В команде Обозреватель на странице "Моя работа" нажмите кнопку "Войти", чтобы открыть страницу "Ожидающие изменения".
На странице "Ожидающие изменения" убедитесь, что:
Все соответствующие изменения перечислены в включенных изменениях
Все соответствующие рабочие элементы перечислены в связанных рабочих элементах.
Введите комментарий, чтобы помочь вашей команде понять цель этих изменений при просмотре журнала управления версиями измененных файлов и папок.
Нажмите кнопку "Войти".
Возобновление работы над задачей
Возобновление работы над исходной задачей. Вы можете быстро вернуться к работе, так как все изменения кода восстанавливаются в рабочей области вместе с важными битами состояния, такими как открытые окна, точки останова и переменные окна просмотра.
Возобновление работы над задачей
В команде Обозреватель на странице "Моя работа" выберите исходный рабочий элемент в разделе "Приостановленная работа" и выберите "Возобновить".
Или, если вы хотите объединить приостановленную работу с ожидающих изменений в рабочей области, выберите "Слияние с выполнением".
При возобновлении работы Visual Studio восстанавливает следующее:
- Открытое решение
- Изменения кода
- Состояние и положение открытых окон
- Точки останова
- Просмотр переменных и выражений окна
- Закладки