рдЪрд▓реЛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдФрд░ рдХрд╡рд░реЗрдЬ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдПред рдХрд╛рд░реНрдп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдкреВрд░реНрдг-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд╛рдирдХ рдкреНрд░рдкрддреНрд░ рдШрдЯрдХреЛрдВ рдкрд░ рдПрдХ рджреГрд╢реНрдп рдЖрд╡рд░рдг рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЙрд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрд╢рди рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ рд╡реЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ DOM рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпрдХреНрд╖ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдпрд╛рдиреА рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рдШрдЯрдирд╛ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдХреНрд▓рд┐рдХ рдкрд░ рдХреБрдЫ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд╛рде)ред рдлрд┐рд░ рднреА, рдпрд╣ DOM рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ DOM рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ Sencha (ExtJS) рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдорд┐рд▓рддрд╛ рдЬреБрд▓рддрд╛ рд╣реИред
рдЗрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рдпрдВрддреНрд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╡рд░реЗрдЬ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд╕рд╛рде рд╣реА рдХреБрдЫ рдХреЛрдб рдЬреЛ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
рд╕рдВрдХрд▓реНрдкрдирд╛
рдПрдХ рд╕рдорд╛рдзрд╛рди
JSTestDriver рд╣реИ , рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдХрдВрд╕реЛрд▓-рдЖрдзрд╛рд░рд┐рдд рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐рд╕реА рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ, рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╢реБрд░реВ рдФрд░ рдорд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕рдордп, JSTestDriver, рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЪрд┐рддреНрд░ рдХреЛ рдмрд╣реБрдд рд╡рд┐рдХреГрдд рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╡рд░реЗрдЬ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреБрдбрд╝реЗ рд╣реБрдП jQuery рдпрд╛ MooTools рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред рд╣рдмреНрд░ рдкрд░ рдлреИрдВрдЯрдореЙрдЬ
рдХреА рдорджрдж рд╕реЗ
рдХреНрд╡рд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рд░рд▓ рд╢реБрд░реБрдЖрдд рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд╡рд░реЗрдЬ рдпрд╛ рдкреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА рдХреА рдЧрдгрдирд╛ рдХреЗ рдмрд┐рдирд╛ (рдЬреЛ рдХреЗрд╡рд▓ рдХрд╡рд░реЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП,
PhantomJS + JSCoverage + QUnit рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ
рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ Google рдХреЛрдб рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдореЗрдВ рдШрдЯрдХреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
- PhantomJS - рдХрдВрд╕реЛрд▓ (рд╣реЗрдбрд▓реЗрд╕) рдЬреЗрдПрд╕ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░;
- JSCoverage JS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдХрдВрд╕реЛрд▓ рдкрд╛рд░реНрд╕рд░ рд╣реИ, рдХреНрд░рдорд╢рдГ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╡реГрджреНрдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕рд░рдгреА рддрддреНрд╡ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдорд╛рдореВрд▓реА рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ - рдХреЗрд╡рд▓ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдирд╣реАрдВред рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЕрдВрдХрди рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд░реЗрдЦрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЕрдВрдХрди рд╢реБрд░реВ рд╣реБрдЖ;
- рдХреНрд╡реАрдирд┐рдЯ , рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд╛рд▓реЗ рд╕рд╣рд┐рдд рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рддреНрд╡рд░рд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдЬреЗрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрдиреЗрдХреНрдЯреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓рд╛рдВрдЪ
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ
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.рд╕реАрдПрдордбреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ , рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдк рд░рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ), рдирд┐рдореНрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рд░рд▓ рдХреА рдЬрд╛рддреА рд╣реИ:
- рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕рдУрд╡рд░реЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрдиреЗрдХреНрдЯреЗрдб рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЗрдВ;
- JSCoverage рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓реЛ;
- рдЕрдиреНрдп рдЬреБрдбрд╝реЗ рд╣реБрдП рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдЬреЛ рдХрд╡рд░реЗрдЬ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ (рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдЦреБрдж рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдШрдЯрдХ, рдЖрджрд┐);
- рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдвреВрдВрдвреЗрдВ;
- рдХреНрд╡рд┐рдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрддреНрд╡реЛрдВ рд╕реЗ рдПрдХ рдкреГрд╖реНрда рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ;
- рдЗрд╕ рдкреГрд╖реНрда рдХреЛ PhantomJS рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ;
- "рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╡рд┐рдВрдбреЛ" рд╕реЗ рдПрдХ рдХреНрд╡реИрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЖрдБрдХрдбрд╝реЗ рд▓реЗрдВ - рдХрд╡рд░реЗрдЬ, рдкреВрд░реНрдг, рд╕рдлрд▓ рдФрд░ рдЧрд┐рд░рд╛рдП рдЧрдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛;
- рдЗрд╕ рд╕рдм рд╕реЗ рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ;
- рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЬреЛрдбрд╝реЗрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд░рд┐рдкреЛрд░реНрдЯ
рдХрд┐рдП рдЧрдП рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ / рд▓рдХреНрд╖реНрдп / рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдореБрдбрд╝реЗ рд╣реЛрдВрдЧреЗ:
- test.html - рд╡реЗрдмрдХрд┐рдЯ-рдЬреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕реВрдЪреА рд╡рд╛рд▓рд╛ рдмрд╣реБрдд рдкреГрд╖реНрда (PhantomJS рдкреНрд░рддрд┐рдмрдВрдз, рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ: // рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрднреА рддрдХ), рдпрд╣ рдЖрдкрдХреЛ рдкрд░рд┐рдЪрд┐рдд рджреГрд╢реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░реНрд╡реНрд╕ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рднреА рдкрд╕рдВрджреАрджрд╛ рджреЗрд╡ рдЙрдкрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЖрджреЗрд╢ рдпрд╣ рд╣реИ - рд╣рдо рдХрдВрд╕реЛрд▓ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦреЗрдВ);
- test-result.html - рд╕реАрдзреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрди рд░рд┐рдкреЛрд░реНрдЯ, рдПрдХрддреНрд░рд┐рдд рдХрд╡рд░реЗрдЬ рдЖрдБрдХрдбрд╝реЗ,:

- * .js.html - рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ:

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