OpenCover + рдмрдиреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рдХрд╡рд░реЗрдЬ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдЖрдзреБрдирд┐рдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЧреБрдгрд╡рддреНрддрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдмрд╣реБрдд рдЬреЛрд░ рджреЗрддреЗ рд╣реИрдВред рдЕрдм рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рд╕рд┐рд░реНрдл рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХреЛрдб рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдард┐рди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрддреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрдорд╛рдиреА рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИ, рдЬрд┐рд╕реЗ рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ "рдирд╣реАрдВ, рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ"ред рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЕрдзрд┐рдХ рд╕рдордп рдмрдЪрд╛рддреЗ рд╣реИрдВ рдЬрд┐рддрдирд╛ рд╡реЗ рд▓реЗрддреЗ рд╣реИрдВред рдХреЛрдб рд░рдЦрд░рдЦрд╛рд╡ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдЪреНрдЪ рдХрд╡рд░реЗрдЬ - рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдордЬрдмреВрдд рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рд╕реНрд╡рдпрдВ рдЗрд╕ рдХрд╡рд░реЗрдЬ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реИ, рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рд╕реЗ рд▓рд╛рдЗрди рдореЗрдВ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреЛрдб рдХреЗ рдХрд┐рди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

OpenCover рдЙрдкрдХрд░рдг рд╣рдореЗрдВ рдХрд╡рд░реЗрдЬ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ C # рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдорд╣рд╛рди рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрд▓реНрдпреВрд╢рди рд╣реИ, рдЬреАрдердм рдкрд░ рд╕реЛрд░реНрд╕ рдХреЛрдб рдЙрдкрд▓рдмреНрдз рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЗрд╕рд▓рд┐рдП, OpenCover рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ Visual Studio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред OpenCover рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдкреЗрдВрдЪ рдХрд░рдирд╛, рдЪрд╛рд╣реЗ рд╡рд╣ MsBuild, Nant, Rake рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реЛ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдВрддреНрд░ рдпрд╣ рд╣реИ рдХрд┐ OpenCover рдХреЛ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрдЬреНрдЮрд╛ рдЗрд╕реЗ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреА рдЬрд╛рддреА рд╣реИред (рдпрджрд┐ рддрд░реНрдХ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ, рддреЛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "-getget:% рдПрдкреНрд▓рд┐рдХреЗрд╢рди%"):


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, OpenCover рдореЗрдВ рдЕрдзрд┐рдХ рддрд░реНрдХ рд╣реИрдВ рдЬреЛ рд╕реАрдзреЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рджреВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рдЦреБрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд╛рдХреА рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ


рддреЛ, рд╣рдо OpenCover рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рдФрд░ рд╣рдореЗрдВ рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП xml рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рднреА рдорд┐рд▓реА, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЗ рдХрд╡рд░реЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, OpenCover рдХреЗ рд▓реЗрдЦрдХ рдЦреБрдж рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдмрддрд╛рддреЗ рд╣реИрдВ - рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯрд░рдЧреЗрдВрдиреЗрдЯрд░ рдХрд╣рд▓рд╛рддрд╛ рд╣реИ ред рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдПрдВред ReportGenerator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдпрд╣ рдПрдХ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рд╣реИ рдЬреЛ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рджреВрдВрдЧрд╛ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдирд┐рд░реНрджреЗрд╢ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рдореЗрдВ рдпреЗ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓реА: рдЫрд╡рд┐рдЫрд╡рд┐

рдПрдХ рд╢реБрд░реБрдЖрдд рдХреА рдЧрдИ рд╣реИ, рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрдЧреЗ - рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрдВрдЯреАрдиреНрдпреВрдЕрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдЬрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдмрд┐рд▓реНрдб рд╕реЗ рдиреАрдЪреЗ рдЧрд┐рд░ рдЬрд╛рдП, рддреЛ рдпрд╣ рдЧрд┐рд░ рдЬрд╛рдПред рдлреЗрд▓ рдмрд┐рд▓реНрдб рдХреЗ рд╕рдЦреНрдд рд░рд╡реИрдпреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕реНрдерд┐рд░ рд▓реЗрдЦрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ :)

Source: https://habr.com/ru/post/In163895/


All Articles