OpenCover MSBuild Integration - Результаты не получены - PullRequest
4 голосов
/ 09 августа 2011

После того, как OpenCover будет работать на моей машине, следующий шаг - заставить его работать с сервером сборки.

Я пытался интегрировать OpenCover с MSBuild на сервере Bamboo Build. Я изменил Build.proj следующим образом для запуска OpenCover после построения решения:

<Target Name="TestAndCodeCoverage" DependsOnTargets="Build" >
    <Message Text="Executing Unit Tests and running OpenCover to check code coverage..." />
    <MakeDir Directories="Coverage" />
    <Exec Command='"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -target:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" -targetargs:/testcontainer:"TestProject\bin\Release\TestProject.dll" -filter:+[*]* -output:Coverage\CodeCoverageResults.xml -register:user -mergebyhash' />
</Target>

Каталог «Покрытие» создается в корневом каталоге решения (который является рабочим каталогом во время сборки). Тесты выполняются и все проходят, но после отображения Committing.... в журнале сборки (что будет отображаться в командной строке) результаты не генерируются, и сборка переходит к следующей задаче (создание отчета с помощью ReportGenerator - это не удалось, так как CodeCoverageResults.xml не был создан).

При запуске той же команды в командной строке на компьютере сборки все работает как положено, и ReportGenerator может сгенерировать отчет.

У кого-нибудь еще была такая же проблема? Нужно ли регистрировать эквивалентные DLL, как в этом примере PartCover?

1 Ответ

4 голосов
/ 10 августа 2011

Поскольку сервер сборки является службой, я бы использовал только ключ -register, однако, если бы на сервере сборки я всегда говорил, что вам нужно зарегистрировать 32- и 64-разрядные профилировщики, один раз, используя regsvr32, а затем отбросить -переключатель регистрации, т. е. нет необходимости каждый раз регистрировать и отменять регистрацию профилировщика.

Ключ -register [: user] предназначен для тех сценариев, когда людям (таким как я) нравится работать с ограниченными разрешениями.

...