2014-08-28 1 views
3

Как я могу заставить мою сборку CI прекратить измерение покрытия для кода (сборок), который мы не писали в наших проектах в решении?Как получить сборку TFS, чтобы не измерять охват сторонних сборок

У нас есть покрытие кода включено для нашей сборки CI решения в определении сборки TFS. Когда мы запускаем покрытие кода локально в Visual Studio, мы правильно получаем покрытие для только сборок в решении. Однако, когда мы регистрируемся, а сборка CI запускает покрытие отчетов о покрытии кода в других сборках сторонних производителей, на которые ссылаются проекты (как локально, так и на сборке CI).

Это значительно искажает покрытие кода%, измеренное на сборке CI, поскольку у сторонних сборок есть еще много блоков кода, чем наше решение. Сборки не являются сборками каркаса .net, но другие сборки вытягиваются из пакетов NuGet.

+0

Чтобы быть ясно : Я знаю [ExcludeFromCodeCoverage] и использую его на наших модульных тестовых классах. Это не те собрания, о которых я беспокоюсь. Они правильно не вносят свой вклад. Обеспокоена сторонними сборками (к которым я не могу добавить атрибут). –

ответ

4

Если вы используете файл настроек запуска, вы можете исключить определенные файлы из покрытия кода.

внутренности файла будет выглядеть следующим образом

<ModulePaths> 
    <Include> 
    <ModulePath>.*\.dll$</ModulePath> 
    </Include> 
    <Exclude> 
     <ModulePath>.*CPPUnitTestFramework.*</ModulePath> 
     <ModulePath>.*test.*</ModulePath> 
     <ModulePath>.*tests.*</ModulePath> 
    </Exclude> 
</ModulePaths> 

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

так Some3rdParty.dll будет исключен с

<ModulePath>.*Some3rdParty.*</ModulePath> 

Более подробной информацией и фактическим полным содержимым файла runsettings можно найти на http://msdn.microsoft.com/en-gb/library/jj635153.aspx

или лучшее объяснение http://blogs.msdn.com/b/sudhakan/archive/2012/05/11/customizing-code-coverage-in-visual-studio-11.aspx

+0

У меня есть элемент шаблона для файла runsettings, доступного в VS Gallery, см. Http://visualstudiogallery.msdn.microsoft.com/704ebd18-7d60-4341-9224-532f73229c74 для VS 2013, http: //visualstudiogallery.msdn. microsoft.com/601bd207-5889-4935-b101-3ebe1f25aafa для VS 2012. –

+0

. runsettings сделал трюк. Как и удаление .pdbs из выходной папки для сторонних пакетов nuget, которые их включают. Я все еще не понимаю, почему некоторые из сборников были включены, которые не имели .pdbs. В документации упоминаются только сборки решений и сборки с pdbs. Но runsettings работает, чтобы заставить агент сборки вести себя так же, как и локально. Благодаря! –

+0

Это ложь; :-) У меня были встроенные DLL, включенные в покрытие раньше, мне пришлось удалить сборку dll s из источника и добавить их с сервера сборки в 2012 году, чтобы они не были включены! –

Смежные вопросы