В Azure DevOps я не могу найти пример, который объясняет, как автоматически запускать проекты модульного тестирования как часть конвейера сборки для. NET Core - PullRequest
1 голос
/ 04 марта 2020

Если требуется дополнительная информация, дайте мне знать в комментариях.


Автоматическое тестирование предположительно довольно легко поддерживается в Azure DevOps, путем добавления одной или нескольких задач в конвейер. , который может быть запущен после нажатия новых коммитов и автоматической сборки вашего программного обеспечения. В Visual Studio это обычно принимает форму DevOps для построения вашего решения Visual Studio, а затем запускает один или несколько тестовых проектов, которые, скорее всего, являются частью этого решения.

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

Эта задача поддерживается только на Windows агенты и не могут использоваться на других платформах.

Это после добавления задачи Visual Studio Test. При использовании минимального конвейера решение может нормально работать, и конвейер работает правильно. При добавлении очень, очень простой задачи c для запуска модульных тестов, возвращается сообщение об ошибке выше.

Я попытался найти четкие инструкции или примеры того, как это настроить, и у меня есть попытался найти эту конкретную ошибку. Какие результаты получаются, просто не очень информативны.

Поскольку ясно инструкции не существуют в другом месте, я спрошу об SO: Каковы основные c, но четкие шаги, необходимые для настройки конвейера Azure DevOps, который будет создавать решение Visual Studio, которое использует. NET Core, а затем запустить тестовый проект (ы) внутри?

1 Ответ

3 голосов
/ 05 марта 2020

Visual Studio Test задача должна быть запущена на Windows. Посмотрите на пример - в pool:vmImage: ubuntuLatest я указываю, чтобы получить конкретную машину для выполнения всех моих шагов внутри. См. список машин по умолчанию , размещенных Microsoft. Например, вы можете использовать windows-latest для правильного выполнения шага Visual Studio Test.

Однако Azure DevOps представила новый набор do tnet основных задач CLI для сборки и тестирования. net основных приложений (Windows для их выполнения не требуется) ).

Я нашел действительно хорошее описание в блоге Скотта Хансельмана . Он будет создавать, тестировать и публиковать sh ваше решение с. net основными проектами.

trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:

    - task: UseDotNet@2 
      displayName: ".NET Core 3.1.x"
      inputs:
        version: '3.1.x'
        packageType: sdk
    - script: dotnet build --configuration $(buildConfiguration)
      displayName: 'dotnet build $(buildConfiguration)'

    - task: DotNetCoreCLI@2
      displayName: "Test"
      inputs:
        command: test
        projects: '**/*tests/*.csproj'
        arguments: '--configuration $(buildConfiguration)'

    - task: DotNetCoreCLI@2
      displayName: "Publish"
      inputs:
        command: 'publish'
        publishWebProjects: true
        arguments: '-r linux-x64 --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
        zipAfterPublish: true

    - task: PublishBuildArtifacts@1
      displayName: "Upload Artifacts"
      inputs:
        pathtoPublish: '$(Build.ArtifactStagingDirectory)' 
        artifactName: 'hanselminutes' 

Позже вы можете поиграть с официальной документацией MSDN , чтобы добавить покрытие кода, результаты тестирования и т. Д. c.

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