рдПрдХ рд░рд┐рд▓реАрдЬ рдЕрдХреНрд╕рд░ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдХреЛрдИ рднреА рдЧрд▓рддреА рдЬреЛ рдЕрдЪрд╛рдирдХ рдЙрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЖрдИ рдереА, рд╡рд╣ рд╣рдореЗрдВ рдбреЗрдбрд▓рд╛рдЗрди, рд╣реЙрдЯрдлрд╝рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдордХреА рджреЗрддреА рд╣реИ, рд╕реБрдмрд╣ рддрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдирд╕реЛрдВ рдХреЛ рдЦрд░реНрдЪ рдХрд░рддреА рд╣реИред рдЬрдм рдЗрд╕ рддрд░рд╣ рдХреА рднреАрдбрд╝ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдиреЗ рд▓рдЧреА, рддреЛ рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдк рдЕрдм рдЙрд╕ рддрд░рд╣ рдирд╣реАрдВ рд░рд╣ рд╕рдХрддреЗред
рд╕рд╛рдзрд╛рд░рдг рд░рдпрд╛рди рдбреЗрд╡рд▓рдкрд░ рдПрд░реНрдЯреЛрдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ 9 рдмрдЬреЗ, рдпрд╛ 10 рдмрдЬреЗ рдпрд╛ 11 рдмрдЬреЗ рд░рд┐рд▓реАрдЬ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдареАрдХ рд╣реИ, рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдмрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЕрднреА рддрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗ рдереЗ, рдФрд░ рд╡рд╣ рд╕реНрд╡рдпрдВ рдХрд╛рд░реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд╣реАрдВ рдЦреЛрдпрд╛ рдерд╛ред

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

рд╕реНрдереИрддрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА
рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдореВрд▓ рдФрд░ рд╕реНрдереИрддрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдореВрд▓ рд╕реЗрдЯ рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдзрд╛рд░ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕рдВрд╕реНрдерд╛рдПрдБ рд╣реИрдВ:
рдкрд░реАрдХреНрд╖рдг рд╕рдВрджрд░реНрдн рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдб рдФрд░ рд▓реЙрдиреНрдЪ рджреЛрдиреЛрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдмрд╛рдд рдХреА рдереА, рд╕рд╛рде рд╣реА рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рднреА рджреА рдереА рдХрд┐ рдкрд░реАрдХреНрд╖рдг рднрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореЗрдЯрд╛-рд╕реВрдЪрдирд╛ рдореЗрдВ рдЙрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рд▓реЙрдиреНрдЪ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХрдИ рдХреЗ рд╕рд╛рде "рд╕рдВрдмрджреНрдз" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐, рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдХреЗ рд╕рдордп, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ - рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдЬрд╛рдВрдЪреЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдпрджрд┐ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╡реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдордЫрд▓реА рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 3 рдбреА рдореЙрдбрд▓ рдФрд░ рдмрдирд╛рд╡рдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдореЙрдбрд▓ рдФрд░ рдмрдирд╛рд╡рдЯ рдХрд╛ рд╕рдВрдХреЗрдд рдореМрдЬреВрдж рд╣реИред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдордЫрд▓реА рдХреА рдЬрд╛рдВрдЪ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рджреВрд╕рд░реА рдУрд░, рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдпрджрд┐ рдмрдирд╛рд╡рдЯ рдХрд╛ рд╕реЗрдЯ рдЬрд┐рд╕реЗ рд╣рдо xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд 3 рдбреА рдореЙрдбрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рд╡рдЯ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрдХреВрд▓рди рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдорд╢реАрди рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЦреЗрдд рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВ рдФрд░ рд╣рдо рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛ рджреВрд╕рд░реЛрдВ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ: рд╕рднреА рдмрдирд╛рд╡рдЯ рдФрд░ рдореЙрдбрд▓ рдЦреЛрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдордЫрд▓реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рднреА рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛:
- рд╕рдВрджрд░реНрдн рддреИрдпрд╛рд░реА
- рдирд┐рд░реАрдХреНрд╖рдг рдкреНрд░рджрд░реНрд╢рди
рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╕рдВрджрд░реНрдн рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдордЫрд▓реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрдЯрд░реНрди рдФрд░ рдмрдирд╛рд╡рдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИред рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдмрд╕ рдпрд╣ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕рд╛рдзрди рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрджрд░реНрдн рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
class VerificationContext(object): def __init__(self, app_path, build_type, platform, changed_files=None): self.__app_path = app_path self.__build_type = build_type self.__platform = platform
рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рддрд░реНрдХ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рд╣реА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рдиред
class TestCase(object): def __init__(self, name, context, build_types=None, platforms=None, predicate=None, expected_resources=None, modified_resources=None): self.__name = name self.__context = context self.__build_types = build_types self.__platforms = platforms self.__predicate = predicate self.__expected_resources = expected_resources self.__modified_resources = modified_resources
рдордЫрд▓реА рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рджреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдкрд╛рдпрд╛ рдЧрдпрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред
class VerifyTexture(TestCase): def __init__(self, context): super(VerifyTexture, self).__init__('VerifyTexture', context, build_types=['production', 'hook'], platforms=['windows', 'ios'], expected_resources=None, modified_resources=['Texture'], predicate=lambda file_path: os.path.splitext(file_path)[1] == '.png') def _prepare_impl(self): texture_dir = os.path.join(self.context.app_path, 'resources', 'textures') for root, dirs, files in os.walk(texture_dir): for tex_file in files: self.context.register_resource('Texture', tex_file) class VerifyModels(TestCase): def __init__(self, context): super(VerifyModels, self).__init__('VerifyModels', context, expected_resources=['Texture'], predicate=lambda file_path: os.path.splitext(file_path)[1] == '.obj') def _run_impl(self): models_descriptions = etree.parse(os.path.join(self.context.app_path, 'resources', 'models.xml')) for model_xml in models_descriptions.findall('.//Model'): texture_id = model_xml.get('texture') texture = self.context.get_resource('Texture', texture_id) if texture is None: self.fail('Texture for model {} was not found: {}'.format(model_xml.get('id'), texture_id))
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдкреНрд░реЗрдб
Playrix рдореЗрдВ рдЧреЗрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЗрдВрдЬрди рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рдорд╛рди рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬреЛ рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдореЗрдВ рд╣реИрдВред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдФрд░ рдЦреБрдж рдХреЛ рдПрдХ рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдПрдХреАрдХрд░рдг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдзрд╛рд╡рдХ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд░реАрдХреНрд╖рдг (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ) рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛: рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрдеред
class Runner(object): def __init__(self, config_str, setup_function): self.__tests = [] config_parser = RawConfigParser() config_parser.read_string(config_str) app_path = config_parser.get('main', 'app_path') build_type = config_parser.get('main', 'build_type') platform = config_parser.get('main', 'platform') ''' get_changed_files CVS ''' changed_files = None if build_type != 'hook' else get_changed_files() self.__context = VerificationContext(app_path, build_type, platform, changed_files) setup_function(self) @property def context(self): return self.__context def add_test(self, test): self.__tests.append(test) def run(self): for test in self.__tests: test.init() for test in self.__tests: test.prepare() for test in self.__tests: test.run()
рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдХреА рдЦреВрдмреА рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рдлрд╛рд░реНрдо рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдСрдЯреЛрдореИрдЯрд┐рдХ рдореЛрдб рдореЗрдВ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди xml рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдирджреЗрдЦрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА, рдХреЛрдб рдореЗрдВ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдЗрд╕рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЙрджрд╛рд╣рд░рдг [main] app_path = {app_path} build_type = production platform = ios
рдЯреНрдпреВрдирд┐рдВрдЧ xml рдЙрджрд╛рд╣рд░рдг <root> <VerifySourceCodepage allow_utf8="true" allow_utf8Bom="false" autofix_path="ci/autofix"> <IgnoreFiles>*android/tmp/*</IgnoreFiles> </VerifySourceCodepage> <VerifyCodeStructures> <Checker name="NsStringConversion" /> <Checker name="LogConstructions" /> </VerifyCodeStructures> </root>
рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЕрдкрдиреА рдЦрд╝рд╛рд╕рд┐рдпрддреЗрдВ рдФрд░ рдЕрдВрддрд░ рд╣реИрдВ; рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕реЗрдЯ рд╣реИрдВ рдЬреЛ рдзрд╛рд╡рдХ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреА:
def setup(runner): runner.add_test(VerifyTexture(runner.context)) runner.add_test(VerifyModels(runner.context)) def run(): raw_config = ''' [main] app_path = {app_path} build_type = production platform = ios ''' runner = Runner(raw_config, setup) runner.run()
рдПрдХрддреНрд░рд┐рдд рд░реЗрдХ
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдЬрдЧрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдорд╕реНрдпрд╛ рдереА рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реЛ, рдЬрд┐рд╕рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдВрд╕реНрдХрд░рдг рди рд╣реЛ рдЬрд┐рд╕рдХреА рд╣рдо рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХрдИ рд╕рдВрд╕реНрдХрд░рдг, рдпрд╛ рдХреЛрдИ рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рдирддреАрдЬрддрди, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдереЗ:
- рдкрд╛рдпрдерди рдФрд░ рд╕рднреА рдкреИрдХреЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рджреЛ "рдмрдЯреНрд╕" рд╣реИрдВ: рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рднреА, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
- рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЧрд▓рдд рдЕрдЬрдЧрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдХрд╛рдо рдореЗрдВ рд╕рдВрдШрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рд╕реНрдЯреЛрд░реЗрдЬ (рдиреЗрдХреНрд╕рд╕) рд╕реЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ред
рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рд╣рд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдЕрдбрд╝рдЪрдиреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрд╢ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд╡рд┐рдзреЗрдп рддрдВрддреНрд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ (рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ)ред
рдФрд░ рдлрд┐рд░ рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ рдХрд┐ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреВрд░реНрд╡ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рд╣реБрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ ...
рдирд┐рд╖реНрдХрд░реНрд╖
рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рд░реЗрдХ рдкрд░ рдиреГрддреНрдп рдХрд┐рдпрд╛, рдХрдбрд╝рд╛ рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реА рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдкрд░реАрдХреНрд╖рдХреЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд╛рдкрддрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рдХрд╛рд░реНрдп рдЕрддреАрдд рдХреА рдмрд╛рдд рдереЗред рд╕рдВрдкреВрд░реНрдг рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕реЗрдЯрдЕрдк рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдЖрдИ рд╡рд┐рднрд╛рдЧ рдХреЗ golems рдЗрд╕ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдЦ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг
рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред