2015-08-02 3 views
0

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

Есть ли какое-либо обходное решение для фильтрации покрытия кода для бизнес-логики внутри dll?

Следовательно, я обычно применяю этот атрибут для свойств getters/seters и кода за файлами.

ответ

1

Ссылка на аналогичный question, я поменял атрибут [ExcludeFromCodeCoverage] с помощью [DebuggerNonUserCode].

Это работает для меня.

0

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

3

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

namespace System.Diagnostics.CodeAnalysis 
{ 
    /// <summary> 
    /// Specifies that the attributed code should be excluded from code coverage information. 
    /// </summary> 
    /// <remarks> 
    /// This attribute was added to the assembly because it's not otherwise 
    /// available to portable class libraries. Marked internal to avoid reuse 
    /// outside this specific library. 
    /// </remarks> 
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Event, AllowMultiple = false, Inherited = false)] 
    internal sealed class ExcludeFromCodeCoverageAttribute : Attribute 
    { 
    } 
} 
+0

Это решение является приятным и чистым и не требует для него скрипки с помощью [DebuggerNonUserCode] для отладки сеанса ... – jackomo

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