Właśnie zaktualizowałem kilka projektów do wersji VS2015/C# 6.Wykluczanie właściwości automatycznych z zakresu kodu w Visual Studio 2015
Obecnie analiza zasięgu kodu MSTest zgłasza, że niektóre właściwości automatyczne nie są uwzględniane w testach jednostkowych. Tak nie było w Visual Studio 2013 i podejrzewam, że może to mieć coś wspólnego z nowymi właściwościami autoproperty w C# 6.
Radzenie sobie ze wszystkimi fałszywymi pozytywami generuje raczej porażkę celu narzędzia Code Coverage, ponieważ praktycznie uniemożliwia zidentyfikowanie rzeczywistego kodu bez pokrycia testowego. Nie chcemy pisać testów jednostkowych dla wszystkich naszych DTO, a ja naprawdę nie musiałbym przechodzić przez projekt, opisując każdą pojedynczą właściwość automatyczną z ExcludeFromCodeCoverage
.
Utworzyłem roboczą MCVE na https://github.com/iaingalloway/VisualStudioCodeCoverageIssue
- Rozwinąć
VisualStudio2013.sln
w Visual Studio 2013 Premium lub Ultimate. - Kliknij przycisk Testuj -> Przeanalizuj zasięg kodu -> Wszystkie testy.
- Należy zauważyć, że w oknie "Wyniki pokrycia kodu" zgłasza się 0 bloków "Nieobjęte".
- Otwarte
VisualStudio2015.sln
w Visual Studio 2015 Enterprise. - Kliknij przycisk Testuj -> Przeanalizuj zasięg kodu -> Wszystkie testy.
- Zauważ, że "Code Coverage Results" raportów okienne 1 Block "nieuregulowanych" (getter dla ExampleDto.Value)
Czy jest możliwe aby skonfigurować wbudowane narzędzie Code Coverage w Visual Studio 2015, aby zignorować właściwości automatyczne, takie jak Visual Studio 2013?
Takie zachowanie wydaje się być błąd w Visual Studio 2015. Obecnie nie ma obejścia inne niż przy użyciu '[ ExcludeFromCodeCoverage] '. Możesz monitorować postęp biletu na: - https://connect.microsoft.com/VisualStudio/Feedback/Details/1742106 –