Как исключить типы и методы из-за использования dotCover в TeamCity?
У меня есть существующий проект С# 4, который я проверил для охвата тестирования с помощью функции TestDriven.Net и Visual Studio, т.е. Test With → Coverage из контекстного меню.
В проекте содержится некоторый код, который мне не нужен, и я решил это, добавив [ExcludeFromCodeCoverage]
для этих типов и методов.
Мы только что обновили TeamCity до 6.0.3, и добавили покрытие dotCover к шагу сборки NUnit.
Мне удалось удалить покрытие для внешних сборок, таких как NHibernate, в разделе "Фильтры" (явно указывая сборки, для которых я хочу охватить), но я боюсь, как исключить типы и методы из закрытых сборок.
![enter image description here]()
Ответы
Ответ 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 (*) поддерживается здесь.