Показать результаты покрытия кода VSTS на GitHub readme - PullRequest
0 голосов
/ 04 мая 2018

Мой код размещен в GitHub, и я запускаю сборки CI в VSTS с VSTest, который выводит результаты покрытия кода. Я вижу эти результаты на готовой странице сборки, но было бы неплохо иметь возможность отображать их на нашем репозитории GitHub, как наш значок состояния сборки и значок nuget. Кто-нибудь знает стандартный способ сделать это с помощью VSTS (т. Е. Встроенной задачи) или это то, что мне нужно было бы обработать в сценарии самостоятельно?

1 Ответ

0 голосов
/ 04 мая 2018

Чтобы отобразить результаты сборки VSTS (например, результаты покрытия кода) в README, вам нужно обработать их с помощью собственного сценария.

Основная идея - получить связанную информацию для журналов сборки и зафиксировать информацию в README.

Детальные шаги, как показано ниже:

  1. Добавить задачу PowerShell в конце определения сборки CI

    В сценарии powershell вам необходимо получить результаты теста из журналов сборки, отформатировать и зафиксировать информацию в README. Наконец, внесите изменения в репозиторий github. Функции в сценарии powershell должны быть выполнены следующим образом.

  2. Получить связанные журналы сборки

    Вы можете получить текущие журналы сборки, используя Timeline REST API :

    GET https://account.visualstudio.com/project/_apis/build/builds/$(Build.BuildId)/timeline?api-version=4.1
    

    И вы можете искать в журналах определенного теста по имени задачи (например, VSTest):

    {
        "id": "407545ba-79a9-55a7-47dd-583380011305",
        "parentId": "df143ba0-1c7a-5b21-02e1-d41a394e29c9",
        "type": "Task",
        "name": "VsTest - testAssemblies",
        "startTime": "2018-05-01T08:20:45.3233333Z",
        "finishTime": "2018-05-01T08:21:55.3733333Z",
        "currentOperation": null,
        "percentComplete": null,
        "state": "completed",
        "result": "succeeded",
        "resultCode": null,
        "changeId": 14,
        "lastModified": "0001-01-01T00:00:00",
        "workerName": "WXV-XINDO-12R2",
        "order": 4,
        "details": null,
        "errorCount": 0,
        "warningCount": 0,
        "url": null,
        "log": {
            "id": 5,
            "type": "Container",
            "url": "https://marinaliu.visualstudio.com/f7855e29-6f8d-429d-8c9b-41fd4d7e70a4/_apis/build/builds/2897/logs/5"
        },
        "task": {
            "id": "ef087383-ee5e-42c7-9a53-ab56c98420f9",
            "name": "VSTest",
            "version": "1.0.86"
        }
    

    Затем вы можете получить журнал сборки VSTest по URL https://marinaliu.visualstudio.com/f7855e29-6f8d-429d-8c9b-41fd4d7e70a4/_apis/build/builds/2897/logs/5 (как в примере выше).

  3. Сбор информации и формат README

    Вы можете получить информацию для своих нужд и отформатировать файл README.

  4. Передайте и внесите изменения в репозиторий github

    git checkout $(Build.SourceBranchName)
    git add .
    git commit -m 'update README'
    git push origin $(Build.SourceBranchName)
    

Примечание:

  • Поскольку во время сборки CI вам нужно вносить изменения в README, вам лучше добавить шаг в определение сборки CI, чтобы проверить, вызвана ли сборка обновлением README.
  • И поскольку команда git обычно показывает нестандартный вывод, вам нужно отменить выбор опции Fail on Standard Error для задачи PowerShell.

    enter image description here

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