NCover 1.5.8 / NCoverExplorer 1.4.0.7 ручные исключения очень нестабильны
Я еще не установил свою лицензию на NCover 3, и все еще использую 1.5.8 на моем сервере сборки. Я пытаюсь исключить полные сборки и конкретные классы, которые я не хочу включать в отчет, потому что они искусственно понижают результаты покрытия.
В NCoverExplorer я поэкспериментировал с параметрами, потому что на вкладке "Параметры" есть раздел исключений покрытия, в котором можно указать полные пространства имен. Я поступил в полностью квалифицированные классы, и по какой-то причине исключается лишь несколько из них, и я не могу понять, почему. Например, когда я добавляю System.ComponentModel.Composition в список, он никогда не исключается!
Это просто ошибка в 1.5.8, с которой мне пока приходится жить, поскольку она является бета-версией и больше не поддерживается? Несмотря на то, что у меня есть новая лицензия на сервер, я хотел бы иметь возможность получить некоторую страховую защиту дома на своем персональном компьютере.
Я нашел действительно отличную статью об использовании CoverageExcludeAttribute, чтобы заставить NCover автоматически пропускать те классы / методы, которые отмечены этим атрибутом. Это лучший вариант?
2 ответа
Вы пытались использовать регулярные выражения для включения / исключения сборок -
//ias AuctionSniper([.\w]*?)(?<!Tests)
включает в себя все сборки, которые начинаются с AuctionSniper, но не заканчиваются тестами, например, AuctionSniper.Main.exe. Можно указать несколько шаблонов, разделенных точкой с запятой.
или же //ias .*vendorsupplied.*;.*tests
Это работает с NCover 3 - вы можете попробовать его, если он работает для бесплатной / общественной версии.
Один из способов получить часть пути - использовать опцию "сборки для включения в покрытие". Это позволило мне игнорировать System.ComponentModel.Composition. Однако исключение большинства других классов и пространств имен все еще не работает. Немного странно, что когда я исключаю целый класс, он исключает только методы, но не любые содержащиеся в нем классы.