Получение ошибки при запуске dotCover из DevOps Azure - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь добавить задачу в наш конвейер сборки в DevOps Azure , чтобы вычислить покрытие кода с помощью инструмента командной строки dotCover . Тем не менее я получаю следующую ошибку.

Необработанное исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'Microsoft.VisualStudio.QualityTools.Common, Version = 14.0.0.0, Culture =нейтральный, PublicKeyToken = b03f5f7f11d50a3a 'или одна из его зависимостей. Системе не удается найти указанный файл.
в Microsoft.VisualStudio.TestTools.RunnerCommandline.Runner.Main (String [] args)

Я добавил ссылку на сборку Microsoft.VisualStudio.QualityTools.Common для нашего тестового проекта и для Copy Local установлено значение true, чтобы оно копировалось в папку bin .

Вот моя команда для выполнения dotCover (я добавил dotCover и MSTEST в наш проект, чтобы мы могли запустить его из Azure DevOps ).

dotCover.exe analysis /TargetExecutable="Tools\MSTest\MSTest.exe "/TargetArguments="/testcontainer:\MyServices.Tests\bin\MyServices.Tests. dll "/Output="output.html" / ReportType = "HTML"

ОБНОВЛЕНИЕ 09.10.2019

Вот ссылка на сборку в моем.csproj. Я добавил ссылку на v15 сборки.

<Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

1 Ответ

0 голосов
/ 03 октября 2019

Получение ошибки при запуске dotCover из DevOps Azure

Как известно, сборка Microsoft.VisualStudio.QualityTools.Common является частью Visual Studio.

При добавлении сборки Microsoft.VisualStudio.QualityTools.Common к вашему тестовому проекту вы получите следующее в файле вашего проекта .csproj:

  <ItemGroup>
    <Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
  </ItemGroup>

Даже если вы установите Copy Local на true, чтобы скопировать его в папку bin. Но папка \bin по умолчанию игнорируется .gitignore / .tfignore. Когда вы собираете проект с помощью devops Azure, он все равно будет искать файл dll в папке PublicAssemblies.

Если мы не установим Visual Studio 2015 на компьютер агента сборки, мы его не найдем.

Итак, чтобы решить эту проблему, вам нужно установить Visual Studio 2015 на компьютер агента сборки, затем проверить, существует ли PublicAssemblies папка uder IDE, а затем проверить, существует ли файл Microsoft.VisualStudio.QualityTools.Common.dll или нет.

Кроме того, если вы не хотите устанавливать Visual Studio 2015 на компьютер агента сборки, вы можете скопировать этот Microsoft.VisualStudio.QualityTools.Common.dll из папки PublicAssemblies в папку проекта / решения, а затем добавить его как ссылку вместо PublicAssemblies, затем вы получите следующее:

  <ItemGroup>
    <Reference Include="Microsoft.VisualStudio.QualityTools.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>.\Microsoft.VisualStudio.QualityTools.Common.dll</HintPath>
    </Reference>
  </ItemGroup>

Затем добавьте этот .dll файл в систему контроля версий и отправьте его в репозитории Azure.

Надеюсь, это поможет.

...