Служба агента VSTS не может получить данные покрытия кода при работе в качестве локальной системы - PullRequest
0 голосов
/ 28 ноября 2018

Краткая версия: две сборки, A и B, для одной и той же фиксации, обе выполняются на нашем сервере сборки с помощью службы агента VSTS

Сборка A:

  • Агент работает какСетевая служба
  • Сохраняет файл .coverage размером 267 КБ, показывая ненулевое% покрытия кода
  • Работает успешно, без ошибок, те же журналы испытаний, что и сборка B

Сборка B:

  • Агент, работающий как локальная система
  • Сохраняет файл .coverage размером 1 КБ, показывая 0% покрытия кода
  • Работает успешно, без ошибок (за исключениемсбой шлюза качества из-за покрытия кода 0%, но это преднамеренно), те же журналы испытаний, что и для сборки A

Дополнительная информация:
Служба агента VSTS обычно запускалась на нашем сервере сборки как "Сетевой сервис », и все было хорошо.Пока нам не пришлось изменить службу агента, чтобы она работала как «Локальная система», чтобы она могла обращаться к сертификату в хранилище «LocalMachine» , которое нам нужно для аутентификации службы Azure AD .После этого он по-прежнему утверждал, что все делает успешно, за исключением того, что файл покрытия кода является крошечным и требует 0% покрытия кода, что странно, поскольку модульные тесты, безусловно, выполняются.Журналы из двух тестовых заданий абсолютно идентичны (за исключением таких вещей, как временные метки и номера сборки), там нет никаких полезных предупреждений или ошибок.

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

  • дать сетевым службам дополнительные разрешения (плохо)
  • регенерация/ переместить сертификат участника службы Azure AD в хранилище сертификатов «Текущий пользователь» для сетевой службы (чувствует себя плохо, но я не уверен, почему)
  • создайте новую учетную запись службы и смиритесь с проблемой разрешений навсегда (тьфу)

Можем ли мы как-то диагностировать, что именно происходит с этим тестовым заданием, не прибегая к procmon?Или есть лучший способ управлять этим материалом?

1 Ответ

0 голосов
/ 30 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...