
рдЖрдЬ рд╣рдо рдЙрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ PHPUnit рдФрд░ TeamCity рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ PHP рдХреЛрдб рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рди рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИ, рдмрд▓реНрдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдПрдХ рд╡реИрдк рд╕рд╛рдЗрдЯ, рдПрдХ рдлреЗрд╕рдмреБрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗрд╡рд▓ PHP рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ C, C ++, HTML5 рдФрд░ рдореЗрдВ рднреА рд╣реИ рдЖрджрд┐
рдЬрд┐рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╣рдо рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛, рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рди рдХреЗрд╡рд▓ рдкреАрдПрдЪрдкреА рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЯреАрдордХрд┐рдЯ рдФрд░ PHPUnit рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдП рдмрд┐рдирд╛ - рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдореЗрдВ рдЖрдПрдЧрд╛ред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ (
рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ! ) рдХрд┐рд╕реА рднреА рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдШрдЯрдХ, рдЬрд┐рд╕ рдкрд░ рджрд░реНрдЬрдиреЛрдВ рд▓реЛрдЧ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рддрдиреА рдмрдбрд╝реА рд╣реЛрдЧреА, рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╣реЛрдВрдЧреЗред рдЕрдзрд┐рдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рдЙрдирдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдЬрд┐рддрдирд╛ рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛ред рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдЬрд┐рддрдирд╛ рд▓рдВрдмрд╛ рд╣реЛрдЧрд╛, рдЙрддрдиреЗ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдХ рдЙрдирдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ "рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдирджреЗрдЦрд╛" рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдФрд░ рдЧрддрд┐ рдХреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдВрддрд┐рдо рдорд┐рдирдЯ рдореЗрдВ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг "рдЗрд╕ рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХреНрдпреЛрдВ рдЖрдИ?" рдХреА рднрд╛рд╡рдирд╛ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЕрдХреНрд╕рд░ рдпрд╣ рд╕рдм "рдЪрд▓реЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓реЛ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ!" рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рд╕рдорд╕реНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╣реИред рдмрд╣реБрдд рдмреБрд░рд╛ рдЕрдЧрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рд╣реИред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдХреИрд╕реЗ? рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рдХреЛрдб рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ 100% рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ: рдЖрдЦрд┐рд░рдХрд╛рд░, рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЙрдирдХреЗ рдмреАрдЪ рд╕реВрдХреНрд╖реНрдо рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрднреА-рдХрднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ (
рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг, рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрднреА рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ,) рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ - рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ред рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдХрд┐рддрдиреЗ рдРрд╕реЗ рдкрд░реАрдХреНрд╖рдг рджреЗрдЦреЗ рд╣реИрдВ? )ред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рдХрдИ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдЪрд▓рд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЖрд▓рд╕реА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХрдИ PHPUnit XML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛: рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдирд┐рд░рдВрддрд░ рд╕рдорд░реНрдерди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдФрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкреВрд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд╛рдкрддрд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рдЗрд╖реНрдЯрддрдо рд╕реЗ рджреВрд░ рд╣реЛрдЧрд╛ред
рдЖрд▓рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рд╕реНрд╡рдпрдВ рднреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣реА рд╣реИ, рд╡реЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рдЕрдВрддрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрдирд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ : рд╣рдореЗрдВ рдПрдХ рдЖрд╕рд╛рди-рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рдкрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдЧреА рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧреАред
рдЦреЛрдЬ
рдЪреВрдВрдХрд┐ PHPUnit рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЦреЛрдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдкрд╣рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ: рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рднрд┐рдиреНрдирддрд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рдереЗред рдпреЗ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ PHPUnit рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░реИрдкрд░ рдереЗ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдФрд░ рд╡реНрдпрд╛рдкрдХ рдкреИрдЪред рд╣рдордиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдХреЛрдб рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд┐рдпрд╛, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ, рдЕрд╕реНрдкрд╖реНрдЯрддрд╛рдУрдВ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдереА: рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рднреА рдПрдХ рд╕реМ рдкреНрд░рддрд┐рд╢рдд рд╕рд┐рджреНрдз рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ?
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдХрд▓реНрдк рджреЛ рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдП рдЧрдП рдереЗ:
- рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ;
- рд╣рдо рдзрд╛рдЧреЗ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдХрддрд╛рд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ PHPUnit рдХреЛ "рдлрд╝реАрдб" рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЗрд╖реНрдЯрддрдо рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдирдХреЗ рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдХреБрдЫ рдереНрд░реЗрдб рдЕрдиреНрдп рд╕рднреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 3-4 рдЧреБрдирд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ PHPUnit рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, PHPUnit рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрдИ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛, рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдирд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рджреВрд╕рд░реЗ, рдЬрдм рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ PHPUnit рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдПрдХ рдЪрд╛рд▓рд╛рдХ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдХ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ (
рд╣рдо рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдмрд╣реБрдд рд╡реИрдз рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИрдВ! ), рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдЯреЗрд╕реНрдЯ рджреЗрддреЗ рд╣реИрдВ рддреЛ рд╣рд╛рд░ рдЧрдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рднрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдХрдердиреАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛, рдЬреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХрдард┐рди рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдиреНрдЪ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдХреНрд░рдо рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рдерд╛ред

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

рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдПрдХ рдЕрд▓рдЧ-рдерд▓рдЧ рдЬрдЧрд╣ рдкрд░ рдЖрдБрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд╣рд╛рдБ рд╣рд░ рдХреЛрдИ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдЧрд╛, рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреБрдЫ рдЕрд▓рдЧ рд╕реЗ рдХреА рдЬрд╛рдПрдЧреАред рдпрд╣ рдЗрд╕ рд╕рдордп рдерд╛ рдХрд┐ рд╣рдордиреЗ рдЯреАрдорд╕рд┐рдЯреА рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХред
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рд╣рдореЗрд╢рд╛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рджреЛрдиреЛрдВ рдореЗрдВ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рддреЗрдЬ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд╕рд╛рде, рдФрд░ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ - рдЬрдм рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рдмрдврд╝рддрд╛ рд╣реИ рдпрд╛ рдШрдЯрддрд╛ рд╣реИ (
рдкрд░реАрдХреНрд╖рдг рдЙрд╕реА рдорд╢реАрдиреЛрдВ рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рдордп рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ )ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдзрд┐рдХрддрдо рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП, рдФрд╕рдд рдореВрд▓реНрдп рдХреЛ рдЬрдорд╛ рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ? рдкрд╣рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╕рднреА рдирд┐рдпрдВрддреНрд░рдг рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдереЗред рдпрд╣реА рд╣реИ, рд╣рдордиреЗ PHPUnit рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рдпрд╛, рдФрд░ рдЗрд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА (
рдФрд░ рдЕрджреНрднреБрдд PHPUnit рд▓реЙрдиреНрдЪ рд▓рд╛рдЗрдиреЗрдВ рд╣рдЬрд╛рд░реЛрдВ рд╡рд░реНрдг рд▓рдВрдмреА рдереАрдВ )ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдФрд░ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИред рдХрдИ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмрд╛рдж, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдпрд╛: рдЖрдк рдорд╛рдирдХ PHPUnit рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреБрдЫ рдХрд╕реНрдЯрдо XML рдЯреИрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╢реБрджреНрдз PHPUnit рдФрд░ рд╣рдорд╛рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (
рдмрд┐рдирд╛ рдзреНрдпрд╛рди рджрд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ )ред
рдирд┐рд░реНрдгрдп
рдЗрд╕рд▓рд┐рдП, рдХрдИ рдШрдВрдЯреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдХрд╛рд╕, рдЧрдВрднреАрд░ рдХреАрдбрд╝реЗ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдФрд░ рдирд╛рдмрд╛рд▓рд┐рдЧреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛, рд╣рдо рдЙрд╕ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЖрдП рдЬреЛ рдЕрдм рдХрд╛рдо рдХрд░рддреА рд╣реИред
рд╣рдорд╛рд░реЗ рдорд▓реНрдЯреАрдереНрд░реЗрдб рд▓реЙрдиреНрдЪрд░ (рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкреНрдпрд╛рд░ рд╕реЗ рдЗрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, "рд▓реЙрдиреНрдЪрд░") рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ:
- рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ;
- рдЗрди рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ;
- PHPUnit рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧред
рдкрд╣рд▓реА рд╢реНрд░реЗрдгреА рдЯреАрдорд╕рд┐рдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИред рд╡рд╣ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд┐рд▓реНрдб рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдЖрдВрдХрдбрд╝реЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рд╣рдпреЛрдЧ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рджреЛрдиреЛрдВ рд╣реИрдВред рдПрдХ рддрд░рдл, TeamCity рд╕реНрд╡рдпрдВ рд╕рднреА рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░реА рддрд░рдл, TeamCity API рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (
рди рд╣реА рджреЗрд╢реА, рдФрд░ рди рд╣реА рдЕрдзрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд REST API ), рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕реАрдзреЗ рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ PHPUnit рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХрд╛ рд╣реИ ) рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдХреА рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣рдорд╛рд░реА рдореВрд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ред рдФрд░ TeamCity рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд┐рдП рдмрд┐рдирд╛, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдХрд▓реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг, рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛рдПрдВ рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЖрдВрдХрдбрд╝реЗ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред

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

рдЖрдБрдХрдбрд╝реЗ рд╕рд╛рдд рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ - рдкрд┐рдЫрд▓реЗ рд╕рд╛рдд рджрд┐рдиреЛрдВ рдореЗрдВред рд╣рд░ рджрд┐рди рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреВрд░реЗ рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирдП рдЖрдВрдХрдбрд╝реЗ, рдФрд╕рдд рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ "рд╡рдЬрди" рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рдПрдХ рднреА рд╡реГрджреНрдзрд┐ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд╛рдпреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рд╡рд░реНрдЧ рд╕рд░рд▓рддрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕реВрдЪрд┐рдпрд╛рдВ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд░рдирдЯрд╛рдЗрдо рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рд╕реЗ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рддрдХ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдмрд╕реЗ рдореБрдХреНрдд рд╕реНрдЯреНрд░реАрдо рдореЗрдВ" рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдЯреНрд░реАрдо рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рдФрд░ рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЫреЛрдЯреЗ рд╣реИрдВ, рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрдХрдВрдб рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ (
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд░ рдЕрднреА рднреА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ )ред
рджрд╛рдИрдВ рдУрд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ, рдХреЙрд▓рдо рдмрд╣ рд░рд╣реЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ "рдИрдВрдЯ" рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рд╣реИ, рдЬрд┐рд╕рдХреА рдКрдВрдЪрд╛рдИ рдЙрд╕ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╛рд╕ рд╣реЛрдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
рддреАрд╕рд░реА рд╢реНрд░реЗрдгреА рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдореБрдЦреНрдп рдореЛрдб рдореЗрдВ, рдпрд╣ рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдХ PHPUnit рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЛ "рдзреАрдореЗ" рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ (
рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛
рд╕рдордп рдмрд╛рд╣рд░реА рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ) рдФрд░ "рдЕрд▓рдЧ-рдерд▓рдЧ" (
рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдмрд╛рдХреА рд╕рднреА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж )ред рддрдм рд▓рд╛рдВрдЪрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ TestListener рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ PHPUnit рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЗрдЯреНрд╕ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЙрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХрдИ PHPUnit рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рдореБрдЦреНрдп рдореЛрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд╡рд╕рд░ рд╣реИрдВ: рдирд╡реАрдирддрдо рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрддреНрдкрдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛, рд╣рдорд╛рд░реЗ рдмрдЬрд╛рдп рдорд╛рдирдХ рдЯреЗрд╕реНрдЯрд┐рд╕реНрдЯрдирд░ PHPUnit рдХреЗ рд╕рд╛рде, рдПрдХ рдЕрд▓рдЧ рдХреНрд░рдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдЖрджрд┐ред
рд╣рдорд╛рд░реЗ TestListener'ah рдХреА рдмрд╛рдд рдХрд░реЗрдВ (
рдпрд╣ рдорд╛рдирдХ PHPUnit рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ )ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд▓рд╛рдВрдЪрд░ рдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ PHPUnit рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рд░реВрдк рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреАред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╢реНрд░реЛрддрд╛ рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рдкрдардиреАрдп рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдФрд░ рд╕рд╛рде рд╣реА STDOUT рдФрд░ STDERR рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдЬреИрд╕реА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рдЬреЛрдбрд╝реАрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ TeamCity рдореЗрдВ рдЙрд╕ рд░реВрдк рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ TestListener рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ (
рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рд▓реЙрдиреНрдЪ рдкрд░ рдкрд╛рда рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рд╡рдЬрди рдкрд╛рдВрдЪ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ )ред

рдкрд░рд┐рдгрд╛рдо
рдЕрдм рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛ред
рд╣рдо 8 рдереНрд░реЗрдбреНрд╕ рдореЗрдВ 17 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ (
рдкреНрд▓рд╕ "рдзреАрдореА" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рддреАрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рд▓реЗ, рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рд╕рднреА рдПрдХ рд╕рд╛рде рдЧреБрдЬрд░рддреЗ рд╣реИрдВ )ред
рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ (
рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдХреЗ рдПрдХ рдорд╛рдирдХ рднрд╛рд░ рдХреЗ рд╕рд╛рде), рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ 3.5-4 рдорд┐рдирдЯ рдмрдирд╛рдо 40-50 рдорд┐рдирдЯ рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкрд╛рд╕ рдХреА рдорджрдж рд╕реЗ рдФрд░ 8-15 рдорд┐рдирдЯ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгред
рднрд╛рд░реА рд▓реЛрдб рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде, рд▓рд╛рдВрдЪрд░ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 8-10 рдорд┐рдирдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо 20-25 рдорд┐рдирдЯ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ ... рдФрд░ рд╣рдордиреЗ рдХрднреА рднреА рдПрдХ рдзрд╛рдЧреЗ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реА рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ TeamCity рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдБрдХрдбрд╝реЛрдВ рдХреА рдмрджреМрд▓рдд рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╡рд╛рд╣ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рддрд░рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИред
рд╣рдореЗрдВ рдРрд╕реЗ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рдХреНрдпрд╛ рджрд┐рдпрд╛?
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрддрд┐ рдмрдврд╝рд╛ рджреА рд╣реИред
- рджреВрд╕рд░реЗ, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рдЪрд▓рдиреЗ рдХреЗ рдХрд╛рд░рдг, рдХрд╛рд░реНрдп рд╢рд╛рдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рдореВрд╣рд┐рдХ рд╡рд┐рд▓рдп рдХреЗ рджреМрд░рд╛рди рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛ рдЧрдИ рд╣реИред
- рддреАрд╕рд░реЗ, рдЯреАрдорд╕рд┐рдЯреА рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рдХрд╛рдлреА рд░рд╛рд╣рдд рдорд┐рд▓реА рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдПрдХ рдмрд┐рд▓реНрдб рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдм рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреВрдП рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рд╕реЗ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд╕рдордп рд╣реИред
- рдЪреМрдерд╛, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рднреЗрдЬрддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХрд╛рд░реНрдп рдХреЛрдб рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХрдИ рд╡рд┐рдЪрд╛рд░ рдФрд░ рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдХрдИ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ: рдХрднреА-рдХрднреА рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд▓реЙрдиреНрдЪ рд╕реЗ рдмрдЪреЗ рд╣реБрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рд▓реЙрдиреНрдЪрд░ рдХреЛ рдЕрднреА рддрдХ рдПрдХ рдХреНрд▓рд┐рдХ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдЕрднреА рднреА рдмрд╣реБрдд, рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЕрдм рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реИред
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ (рд╣рдо рдЬреВрди рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВ) рд╕рд┐рд╕реНрдЯрдо рдХреА рдХреБрд▓ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рд╕рдВрд╢реЛрдзрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рднреА рд▓рд╛рдВрдЪрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╡рд╛рд▓реА рдХрдИ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рдХреЛ рддреЛрдбрд╝ рджреЗрдВ, рдЖрджрд┐ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд▓реЙрдиреНрдЪрд░ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓ рд╕рдХреЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдирдХрд┐рдВрд╕ рдпрд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╣рдорд╛рд░рд╛ рдорд▓реНрдЯреАрдереНрд░реЗрдб рд▓реЙрдиреНрдЪрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд░рд╛рдВрддрд┐ рд╣реИ рдпрд╛ рдЯреЗрд╕реНрдЯ рдСрдЯреЛрдореЗрд╢рди рдореЗрдВ рдПрдХ рдирдпрд╛ рд╢рдмреНрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕рдиреЗ рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкрдХреНрд╖ рджрд┐рдЦрд╛рдпрд╛ рдФрд░ рдХреБрдЫ рдХрдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдиреНрдп рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд▓реНрдпрд╛ рдХреБрдбрд┐рдиреЛрд╡, рдХреНрдпреВрдП рдЗрдВрдЬреАрдирд┐рдпрд░ред