2013-10-25 3 views
7

Я пытаюсь более точно отразить охват кода в проекте, над которым я работаю, но столкнулся с проблемой, когда дело доходит до созданных классов Entity Framework. Я хотел бы исключить конструкторы этих классов из статистики покрытия, поэтому я добавил атрибут ExcludeFromCodeCoverage в шаблон T4, который восстанавливает классы, как я ожидал бы, например.Исключительный атрибут ExcludeFromCodeCoverage с dotCover в TeamCity 7

using System.Diagnostics.CodeAnalysis; 

public partial class Address 
{ 
    [ExcludeFromCodeCoverage] 
    public Address() 
    { 
     this.Person = new HashSet<Person>(); 
    } 

    ... 
} 

Я пытаюсь добавить это на уровне метода, поскольку есть некоторые частичные классы, содержащие пользовательскую логику, которая должна быть проверена и включена в статистику покрытия кода.

Из того, что я прочитал ExcludeFromCodeCoverage должны автоматически исключаться при использовании dotCover, но я не уверен, что если бы это было верно, когда работает через TeamCity, поэтому я включил фильтр, как упоминалось в Attribute filter syntax for code coverage in TeamCity (пытаясь как ExcludeFromCodeCoverage и ExcludeFromCodeCoverageAttribute) с не повезло.

Thanks

ответ

13

У меня такая же версия TeamCity, как и у вас. Он отлично работает для меня. Вы должны проверить правильность вашей конфигурации.

Вы должны указать имя атрибута в поле Фильтры атрибута :. В вашем случае текст должен быть:

-:System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

Помеченные члены не должны отображаться (для классов) или отмечен зеленый/красный в вас ваш отчет по покрытию TeamCity.

Более подробные инструкции можно найти here

Я имел подобный вопрос. Я исключил сгенерированный класс из покрытия путем добавления к моему «покрытия кода» шаг сборки:

-:assembly=<assembly name>*;type=*<part of generated classname>*;method=*

+0

Этот комментарий не связаны непосредственно с TeamCity и DotCover, но и для тех, кто использует 'командной строки DotCover.exe' , чтобы исключить код, помеченный атрибутом ExcludeFromCodeCoverage, вы должны использовать следующий 'dotCover.exe анализ .../AttributeFilters = System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute', вам не нужен синтаксис' -: ', как с параметр '/ Filters ='. –

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