Тестовое задание VSTS не прошло, несмотря на успешное тестирование - PullRequest
0 голосов
/ 04 апреля 2019

Я получаю ошибку ниже даже после того, как все тесты пройдены под VsTest задачей.

2019-04-04T10:22:14.3913769Z Unable to find d:\a\r1\a\xxx\e2e\bin\Release\netcoreapp2.1\testhost.dll. Please publish your test project and retry.
2019-04-04T10:22:15.1564640Z Results File: d:\a\r1\a\TestResults\VssAdministrator_fv-az153_2019-04-04_10_22_13.trx
2019-04-04T10:22:15.1606430Z 
2019-04-04T10:22:15.1607111Z Test Run Aborted.
2019-04-04T10:22:15.1607372Z Total tests: Unknown. Passed: 6. Failed: 0. Skipped: 0.
2019-04-04T10:22:15.1607627Z Test execution time: 36.3008 Seconds
2019-04-04T10:22:15.3788506Z ##[warning]Vstest failed with error. Check logs for failures. There might be failed tests.
2019-04-04T10:22:15.3917110Z ##[error]Error: The process 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe' failed with exit code 1
2019-04-04T10:22:15.8355860Z ##[error]VsTest task failed

Когда я пытался локально с ниже, но без ошибок:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe C:\xxx\src\xxx.EndToEnd.Integration.Tests\bin\Debug\netcoreapp2.1\xxx.EndToEnd.Integration.Tests.dll /logger:trx 2>error.txt

Я тоже пробовал это решение, но не повезло.

build.yaml

- task: CopyFiles@2
      displayName: "Copy Files to: $(Build.ArtifactStagingDirectory)"
      inputs: 
        contents: '$(Build.SourcesDirectory)/src/xxx.EndToEnd.Integration.Tests/**'
        targetFolder: $(Build.ArtifactStagingDirectory)

    - task: DotNetCoreCLI@2
      displayName: "dotnet e2e tests"
      inputs:
        command: publish
        publishWebProjects: false
        projects: '**/*.csproj'
        arguments: --output $(Build.ArtifactStagingDirectory)/src/xxx.EndToEnd.Integration.Tests
        zipAfterPublish: false

    - task: PublishBuildArtifacts@1
      displayName: "Publish End-to-End Tests"
      inputs: 
        artifactName: e2e
        PathtoPublish: '$(Build.ArtifactStagingDirectory)/src/xxx.EndToEnd.Integration.Tests'

enter image description here

Я заметил ниже в журналах, которые имеют различие в путях (т. Е. Выпуск конвейера - d:\a\r1\a\EstimationCore\e2e\xxx.EndToEnd.Integration.Tests и Сборка конвейера - d:\a\1\a\src\xxx.EndToEnd.Integration.Tests\bin\Release\netcoreapp2.1

Полный журнал:

Release pipeline - Download artifact - EstimationCore - e2e
2019-04-07T09:05:10.8843174Z Downloaded e2e/xxx.EndToEnd.Integration.Tests/xxx.EndToEnd.Integration.Tests.deps.json to d:\a\r1\a\EstimationCore\e2e\xxx.EndToEnd.Integration.Tests\xxx.EndToEnd.Integration.Tests.deps.json

Build pipeline - Copy Files to: $(Build.ArtifactStagingDirectory)
Copying d:\a\1\s\src\xxx.EndToEnd.Integration.Tests\bin\Release\netcoreapp2.1\xxx.EndToEnd.Integration.Tests.deps.json to d:\a\1\a\src\xxx.EndToEnd.Integration.Tests\bin\Release\netcoreapp2.1\xxx.EndToEnd.Integration.Tests.deps.json

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

Задание вернулось с: Test Run Aborted. Таким образом, не все тесты были выполнены.И это вероятная причина:

Unable to find d:\a\r1\a\xxx\e2e\bin\Release\netcoreapp2.1\testhost.dll. Please publish your test project and retry.

Я рад, что это приводит к сбою выполнения теста :).

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

Вы не поделились остальной частью вашего рабочего процесса, но яриск, связанный с тем, что упомянуто в сообщении об ошибке, имеет большой смысл.

Убедитесь, что все пути указаны правильно, чтобы найти нужные файлы.В сборке вы получаете контроль над путями через --output в выпуске, каждый артефакт загружается в определенное место на основе имени артефакта.Это сделано для того, чтобы выпуски с несколькими артефактами не перезаписывали файлы друг друга случайно.

0 голосов
/ 08 апреля 2019

Тесты были успешно выполнены после следующих изменений на build.yaml. Итак, как вы можете видеть, проблема была с путями к папкам

task: CopyFiles@2 не обязательно

- task: DotNetCoreCLI@2
      displayName: "dotnet e2e tests"
      inputs:
        command: publish
        publishWebProjects: false
        projects: '**/**/*.EndToEnd.Integration.Tests.csproj'
        arguments: --output $(Build.ArtifactStagingDirectory)
        zipAfterPublish: false

    - task: PublishBuildArtifacts@1
      displayName: "Publish End-to-End Tests"
      inputs: 
        artifactName: e2e
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...