рд╣рдорд╛рд░реЗ рд╕рд╣рдпреЛрдЧреА, рд╕реНрдХреЙрдЯ рд╣реИрдВрд╕реЗрд▓рдореИрди, .NET рдХреЛрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЖрдЬ рд╡рд╣ рдПрдХ рдФрд░
рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ :
AltCover ред рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЛ!
рдореИрдВ рд╕реНрдХреЙрдЯ рд╣реИрдиреНрд╕рдореИрди рдХреЛ рдордВрдЬрд┐рд▓ рджреЗрддрд╛ рд╣реВрдВред
рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдХрд╡рд░рд▓реЗрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреАред рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд OpenCover рдЙрдкрдХрд░рдг рдФрд░ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рднреА рд╣реИрдВ рдЬреЛ .NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OpenCover рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рд╛рдеред
рдЖрдЬ рдореИрдВ AltCover рд╕реНрдЯреАрд╡ рдЧрд┐рд▓рд╣рдо рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реВрдВрдЧрд╛ ред рдХрд╡рд░реЗрдЬ рдбрд┐рдЯреЗрдХреНрд╢рди рдЯреВрд▓ рдореМрдЬреВрдж рд╣реИрдВ рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ .NET рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, AltCover, рдЗрд╕рдХреЗ рд▓рд┐рдП IL рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ ред
рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ рдХрд╡рд░реЗрдЬ рдХрд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХрд╛ рд╣реИред рд░рди-рдЯрд╛рдЗрдо рдкрд░ .NET-рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рд╡рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд IL рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рднреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЖрдк рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рд╣реИрдВред
AltCover рди рдХреЗрд╡рд▓ NuGet рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ .NET рдХреЛрд░ рдЧреНрд▓реЛрдмрд▓ рдЯреВрд▓ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
dotnet tool install --global altcover.global
рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдХрд╣реАрдВ рднреА altcover рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдлрд┐рд░ рднреА, рдореИрдВ
AltCover рдХреНрд╡рд┐рдХ рд╕реЗрдЯрдЕрдк рдЧрд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ!
рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ hanselminutes.core.tests рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛,
dotnet add package AltCover
рдФрд░ рдлрд┐рд░ рдореИрдВ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реВрдВрдЧрд╛ред
dotnet test /p:AltCover=true
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЪрд▓рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ test.xml рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдореИрдВ LCov рдпрд╛ рдХреЛрдмрд░реНрддреБрд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рднреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рдХрд╡рд░реЗрдЬред Xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ рдЖрдзрд╛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╣реИ! рдЗрд╕рдХреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

рдлрд╝рд╛рдЗрд▓ OpenCover XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╡рд░реЗрдЬ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП
ReportGenerator рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдкреВрд░реА рдорд┐рдиреА-рдХрд╡рд░реЗрдЬ рд╕рд╛рдЗрдЯ!
рдореИрдВрдиреЗ ReportGenerator рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ (рдпрд╣ .NET рдХреЛрд░ рдЧреНрд▓реЛрдмрд▓ рдЯреВрд▓ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ)ред
c:\ReportGenerator\ReportGenerator.exe -reports:coverage.xml -targetdir:./coverage
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрдЪреНрдЫреЗ рдЯрд╛рд░рдЧреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджрд░реНрдЬрдиреЛрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ HTML рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реЗрдВрдЧреАред рдпрд╣ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдХрд╡рд░реЗрдЬ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП .ignignoringред Index.htm рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕ рд╕рднреА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд░реЗрдЯ рдХрд░реЗрдВ!

рдКрдкрд░ рдЬреЛрдЦрд┐рдо рд╡рд╛рд▓реЗ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рджреЗрдЦреЗрдВ! рдореЗрд░реЗ рдкрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг
рдПрдирдкреАрде рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдордкреЗрдЬрд╣реИрдВрдбрд▓рд░ рд╣реИ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг
рд╕рд╛рдЗрдХреНрд▓реЛрдореИрдЯрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рджреЛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрддреНрдХреГрд╖реНрдЯ рдЯреНрд░реИрдХ рдХрд╡рд░реЗрдЬ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ EnableAutoLinks рд╣рдореЗрд╢рд╛ рд╕рдЪ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рдЪреЗрдХ рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╣реИ рдЕрдЧрд░ EnableAutoLinks рдЧрд▓рдд рд╣реИред
рдкреВрд░рд╛ AltCover рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрдврд╝реЗрдВ ред рдЗрд╕ рдЯреВрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЧреНрд▓реЛрдмрд▓ рдЯреВрд▓реНрд╕ рдЧреНрд▓реЛрдмрд▓ рдЯреВрд▓реНрд╕, рдбреЙрдЯрдиреЗрдЯ рдЯреЗрд╕реНрдЯ, MSBuild рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓реЗрдХрд░ PowerShell рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рддрдХ!
- рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
- рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
- рдбреЙрдЯрдиреЗрдЯ рдЯреЗрд╕реНрдЯ рд╕реЗ AltCover рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЙрдЯрдиреЗрдЯ рдкрд░реАрдХреНрд╖рдг рдПрдХреАрдХрд░рдг рдкрд░ рдЬрд╛рдПрдВред
- MSBuild рд╕реЗ AltCover рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ ред
- AltCover рдФрд░ рдЙрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдВрдбреЛрдЬ рдкреЙрд╡рд░рд╢реЗрд▓ рдпрд╛ рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЛрд░ рдЯреВрд▓реНрд╕ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЬрд╛рдПрдВ ред
рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдФрд░ AltCover рдФрд░ .NET Core рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рд╕рдЪрдореБрдЪ 10 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред AltCover рд╕реЗ рд╕реНрдЯреАрд╡ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж! рдЙрд╕реЗ asterisk рджреЗрдиреЗ, рдлрд╝рд╛рдЗрд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
github.com/SteveGilham/altcover рдкрд░ рдЬрд╛рдПрдБ! рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЗрд╕ рддрд░рд╣ рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рджреЛрд╕реНрддреЛрдВ рдФрд░ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред