PhantomJS + JSCoverage + QUnit рдпрд╛ рдХрдВрд╕реЛрд▓ рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде JS рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдВрддреНрд╡рдирд╛

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

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

рд╕рдВрдХрд▓реНрдкрдирд╛

рдПрдХ рд╕рдорд╛рдзрд╛рди JSTestDriver рд╣реИ , рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрдВрд╕реЛрд▓-рдЖрдзрд╛рд░рд┐рдд рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐рд╕реА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ, рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╢реБрд░реВ рдФрд░ рдорд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдордп, JSTestDriver, рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЪрд┐рддреНрд░ рдХреЛ рдмрд╣реБрдд рд╡рд┐рдХреГрдд рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╡рд░реЗрдЬ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреБрдбрд╝реЗ рд╣реБрдП jQuery рдпрд╛ MooTools рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рд╣рдмреНрд░ рдкрд░ рдлреИрдВрдЯрдореЙрдЬ рдХреА рдорджрдж рд╕реЗ рдХреНрд╡рд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд░рд▓ рд╢реБрд░реБрдЖрдд рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд╡рд░реЗрдЬ рдпрд╛ рдкреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЧрдгрдирд╛ рдХреЗ рдмрд┐рдирд╛ (рдЬреЛ рдХреЗрд╡рд▓ рдХрд╡рд░реЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред

рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, PhantomJS + JSCoverage + QUnit рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ Google рдХреЛрдб рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдореЗрдВ рдШрдЯрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

рд▓рд╛рдВрдЪ

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ PhantomJS (рдбрд╛рдпрдирд╛рдорд┐рдХ) рдФрд░ JSCoverage рдХреЗ рд╕рд╛рде рджреЛ рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдЬрд╝рд┐рдк рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкрде рдХреЛ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╕рдореВрд╣ рдХрд╛ рд╕рд╣реА рдирд╛рдо рднреА рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢реНрди рдореЗрдВ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд┐рдЦреА рдЧрдИ рдереАред рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝реЙрд░реНрдо рдХреА рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

var config = { includes: [ // ,       { file: 'lib/jquery-1.7.1.js', coverage: false //          }, { file: 'lib/json2.js', coverage: false }, { file: 'lib/testable.js', coverage: true //     тАФ  } ], testCases: [ //    ,   ,    ,    { location: '/tests', pattern: /.+Test\.js/g, recursive: true } ], target: { //     location: '/target' } }; 

рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж "рд╕рдмрд╕реЗ рдореБрдЦреНрдп рдмреЕрдЯрдирд┐рдХ" (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд░рди-рдЯреЗрд╕реНрдЯ.рд╕реАрдПрдордбреА рдпрд╛ рд░рди-рдЯреЗрд╕реНрдЯ 2.рд╕реАрдПрдордбреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ , рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рд░рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ), рдирд┐рдореНрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рд░рд▓ рдХреА рдЬрд╛рддреА рд╣реИ:
  1. рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕рдУрд╡рд░реЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЗрдВ;
  2. JSCoverage рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реЛ;
  3. рдЕрдиреНрдп рдЬреБрдбрд╝реЗ рд╣реБрдП рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдЬреЛ рдХрд╡рд░реЗрдЬ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ (рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдЦреБрдж рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдШрдЯрдХ, рдЖрджрд┐);
  4. рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдвреВрдВрдвреЗрдВ;
  5. рдХреНрд╡рд┐рдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрддреНрд╡реЛрдВ рд╕реЗ рдПрдХ рдкреГрд╖реНрда рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ;
  6. рдЗрд╕ рдкреГрд╖реНрда рдХреЛ PhantomJS рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ;
  7. "рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╡рд┐рдВрдбреЛ" рд╕реЗ рдПрдХ рдХреНрд╡реИрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЖрдБрдХрдбрд╝реЗ рд▓реЗрдВ - рдХрд╡рд░реЗрдЬ, рдкреВрд░реНрдг, рд╕рдлрд▓ рдФрд░ рдЧрд┐рд░рд╛рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛;
  8. рдЗрд╕ рд╕рдм рд╕реЗ рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ;
  9. рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд░рд┐рдкреЛрд░реНрдЯ

рдХрд┐рдП рдЧрдП рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ / рд▓рдХреНрд╖реНрдп / рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдореБрдбрд╝реЗ рд╣реЛрдВрдЧреЗ:

рдкрд░рд┐рдгрд╛рдо

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

рдлрд┐рд▓рд╣рд╛рд▓, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдХрдорд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдФрд░ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред рдХрд┐рдЯ JSTestDriver рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдврд╛рдВрдЪреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рднреА рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк PhantomJS рдореЗрдВ IDE рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВред

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


All Articles