Подтвердить что ты не робот

Как исключить типы и методы из-за использования dotCover в TeamCity?

У меня есть существующий проект С# 4, который я проверил для охвата тестирования с помощью функции TestDriven.Net и Visual Studio, т.е. Test With → Coverage из контекстного меню.

В проекте содержится некоторый код, который мне не нужен, и я решил это, добавив [ExcludeFromCodeCoverage] для этих типов и методов.

Мы только что обновили TeamCity до 6.0.3, и добавили покрытие dotCover к шагу сборки NUnit.

Мне удалось удалить покрытие для внешних сборок, таких как NHibernate, в разделе "Фильтры" (явно указывая сборки, для которых я хочу охватить), но я боюсь, как исключить типы и методы из закрытых сборок.

enter image description here

4b9b3361

Ответ 1

Хорошо, Мартин, я понял это! Это всего лишь час случайного толчка в синтаксисе фильтра... когда в документации говорится добавить фильтр, подобный этому

+:myassembly=*;type=*;method=***

Они действительно означают это... где что-либо в <> полностью заменяется вами, а все остальное - буквальным

+:<myassembly>;type=<filter>;method=<filter>

Итак, фильтр, который я хотел, состоял в том, чтобы включить одну сборку (из множества сборок), а затем исключить несколько пространств имен в этой сборке. Я написал

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*

Ответ 2

Посмотрите страницу "Советы и подсказки" . Похоже, вы можете настроить исключения в разделе "Фильтры", аналогично тому, как вы исключили целые сборки.

Предположим, вы хотите игнорировать метод с именем DoStuff, содержащийся в классе MyStuff, который находится в библиотеке MyAwesomeAssembly. Тогда ваш XML-код dotCover должен выглядеть примерно так:

<Filters>
  <ExcludeFilters>
     <FilterEntry>
       <ModuleMask>MyAwesomeAssembly</ModuleMask>
       <ClassMask>MyStuff</ClassMask>
       <FunctionMask>DoStuff</FunctionMask>
     </FilterEntry>
  </ExcludeFilters>
</Filters>

Отказ от ответственности: Я не использую dotCover, поэтому я не уверен на 100%, если это действительно сработает.

Ответ 3

Это то, что сообщает TeamCity о параметрах фильтра:

Укажите сборки для профиля по одному в строке, используя следующий синтаксис: +: myassembly =; type =; method = *

Использование -: MyAssembly для исключения сборки из покрытия кода. Подстановочный знак Asterisk (*) поддерживается здесь.