рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рд╕реНрдерд╛рдкрдирд╛

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


рдЫрд╡рд┐


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


PS - рдпрд╣ рд▓реЗрдЦ рдХреЛ рдЖрдЧреЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ рдкрд╛рдардХ рдиреЗ npm рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред

рдЖрдЗрдП рдЫреЛрдЯреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ:


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

рдХрд░реНрдорд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ (рдХрдИ рдЕрдиреНрдп рдХреА рддрд░рд╣) рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдВрдХреБрд▓ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


# Install Karma: $ npm install karma --save-dev 

 # Install plugins that your project needs: $ npm install karma-jasmine karma-chrome-launcher jasmine-core --save-dev 

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо npm install -g karma-cli ./node_modules/karma/bin/karma cli npm install -g karma-cli cli рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдЖрджреЗрд╢ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЙрдкрд▓рдмреНрдз ./node_modules/karma/bin/karma ред


рддрдм рд╣рдо рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 karma init karma.conf.js 

  • рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рд╕реЗ рдкреВрдЫрд╛ рдЬрд╛рдПрдЧрд╛ред (рдЬреИрд╕реНрдореАрди)
  • рдХреНрдпрд╛ рд╣рдо рдлрд╝рд╛рдЗрд▓ / рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред Js (рдирд╣реАрдВ)
  • рд╣рдо рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (Chrome)
  • рд╣рдо рдХрд┐рди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реБрди рд░рд╣реЗ рд╣реИрдВред (* [рдПрд╕рдПрд╕] pec.js)
  • рдХреНрдпрд╛ рдХрд┐рд╕реА рдлрд╛рдЗрд▓ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдХреНрдпрд╛ рдореБрдЭреЗ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП (рд╣рд╛рдБ)

рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреАред


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓
 // Karma configuration // Generated on Thu May 09 2019 18:54:02 GMT+0300 (RTZ 2 ()) module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine'], // list of files / patterns to load in the browser files: [ '*[Ss]pec.js' ], // list of files / patterns to exclude exclude: [ ], // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { }, // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: ['Chrome'], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: false, // Concurrency level // how many browser should be started simultaneous concurrency: Infinity }) } 

рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред


рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓
 // test.spec.js describe("A suite is just a function", function() { var a; it("and so is a spec", function() { a = true; expect(a).toBe(true); }); it("and so is a spec", function() { a = true; expect(a).toBe(false); }); }); 

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ karma start karma.conf.js рдЪрд▓рд╛рдХрд░ рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдРрдб-рдСрди рдмрдирд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред


npm i -D karma-jasmine-html-reporter рдкреИрдХреЗрдЬ npm i -D karma-jasmine-html-reporter , рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдХрд░реНрдо рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝реЗрдВ:


 ... reporters: ['progress', 'kjhtml'], client: { clearContext: false // leave Jasmine Spec Runner output visible in browser }, ... 

рдЕрдм рд╣рдо рд╕рдм рд╕реЗрдЯ рд╣реИрдВред рд╣рдо karma start karma.conf.js рдФрд░ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ: рдбреА

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


All Articles