Protractor: рдЬреВрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдЧре░ 2013  ┬╖  42рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/protractor

рд╣рдо рдЬреЗрдирдХрд┐рдВрд╕ рдкрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдЬреВрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯрд░ (рдЬреИрд╕реЗ рдХрд░реНрдо рд╣реИ) рддреЛ рдЬреЗрдирдХрд┐рдВрд╕ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕реЗ рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдереЛрдбрд╝реЗ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ - рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ:

npm install jasmine-reporters

рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓:

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

рд╕рднреА 42 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ 2 рд╕реЗрдВрдЯ рдпрд╣рд╛рдВ: рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЧреНрд░рдВрдЯ-рдЬреИрд╕реНрдореАрди-рдиреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЬреБрдиреАрдЯ рдЬреИрд╕реА рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдЗрд╕реЗ рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдереЛрдбрд╝реЗ рд╣реИрдХреА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ - рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ:

npm install jasmine-reporters

рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓:

require('jasmine-reporters');

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(
    'outputdir/', true, true));

// The main suite of Protractor tests.
exports.config = {
  seleniumServerJar: './selenium/selenium-server-standalone-2.35.0.jar',
  chromeDriver: './selenium/chromedriver',

  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Spec patterns are relative to this directory.
  specs: [
    '*_spec.js'
  ],

  capabilities: {
    'browserName': 'chrome'
  },

  baseUrl: 'http://localhost:8000',
};

рдЖрдЧреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЕрдм https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ

рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдкреВрд░реНрдг рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкреВрд░реНрдг рдкрде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрдмрдХрд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдирд╣реАрдВред рдореИрдВрдиреЗ ../Reports рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реИ
рдЪрдореЗрд▓реА.getEnv ()ред AddReporter (
рдирдИ рдЪрдореЗрд▓реАредJUnitXmlReporter('xmloutput', true, true));
},

рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ

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

@juliemr рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рджреЛ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП grunt-concurrent рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ? рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХреЗрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЛ рджреВрд╕рд░реЗ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ рдЬреЛ рдЬреЗрдирдХрд┐рдВрд╕ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреИрд╕реЗ рдЪрд▓рдирд╛ рд╣реИ, рдЗрд╕реА рддрд░рд╣ рдХрд░реНрдо рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?

@mzgol рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖реНрдп рдХреЛ рдПрдХ рд╕рдорд╡рд░реНрддреА рдХрд╛рд░реНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдЕрд▓рдЧ рдЬреВрдирд┐рдЯ рдПрдХреНрд╕рдПрдордПрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдЖрдк рд▓рдХреНрд╖реНрдп рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╕ рдПрдХ рдирдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

@mzgol рдореИрдВрдиреЗ jvandyke (рдзрдиреНрдпрд╡рд╛рдж) рд╕реЗ рд╕реБрдЭрд╛рд╡ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

onPrepare: function(){
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function(caps){
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new
jasmine.JUnitXmlReporter("protractor_output", true, true,prePendStr));
        });
 },

рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

рддреИрдпрд╛рд░ рдХрд░реЗрдВ: рдлрд╝рдВрдХреНрд╢рди () {
рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');
var capsPromise = browser.getCapabilities();
capsPromise.then (рдлрд╝рдВрдХреНрд╢рди (рдХреИрдкреНрд╕) {
рд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рдирд╛рдо = caps.caps_.browserName.toUpperCase ();
рд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╡рд░реНрдЬрди = рдХреИрдкреНрд╕.рдХреИрдкреНрд╕_.рд╕рдВрд╕реНрдХрд░рдг;
var prePendStr = browserName + "-" + browserVersion + "-";
jasmine.getEnv().addReporter(new
jasmine.JUnitXmlReporter("protractor_output", true, true, prePendStr));
});
},

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдКрдкрд░ рдПрдХ html рд░рд┐рдкреЛрд░реНрдЯрд░ рдмрдирд╛рдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдмрддрд╛рдПрдВ
https://github.com/jintoppy/protractor-html-screenshot-reporter

рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдбреЙрдХреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рднреА @tracycummins рдХреЛ рдЯреНрд░рд┐рдк рдХрд┐рдпрд╛ рдерд╛!

@juliemr рдирдореВрдиреЗ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдердХрд╛ рджрд┐рдпрд╛ред рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрдд рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА

/рд╣реЛрдо/рдЬреИрдХ/рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк/conf.js:19
jasmine.getEnv ()ред AddReporter (рдирдпрд╛ рдЪрдореЗрд▓реАред JUnitXmlReporter ('xmloutput', рд╕рдЪ, рд╕рдЪ));
^
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ
Exports.config.onPrepare рдкрд░ (/home/jack/prototype/conf.js:19:33)
Runner.runFilenamesOrFns_ (/home/usr/lib/node_modules/protractor/lib/runner.js:64:9) рдкрд░
Runner.runTestPreparers (/home/usr/lib/node_modules/protractor/lib/runner.js:91:8) рдкрд░
runner.controlFlow.execute.then.jasmineNodeOpts (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:39:12) рдкрд░
webdriver.promise.ControlFlow.runInNewFrame_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1539:20) рдкрд░
webdriver.promise.ControlFlow.runEventLoop_ (/home/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1404:8) рдкрд░
рд░реИрдкрд░ рдкрд░ _onTimeout . рдХреЗ рд░реВрдк рдореЗрдВ
Timer.listOnTimeout рдкрд░ рдСрдирдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ
==== async рдХрд╛рд░реНрдп ====
рдкрд░реАрдХреНрд╖рдг рддреИрдпрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрд▓рд╛рдПрдВ
Object.exports.run (/home/usr/lib/node_modules/protractor/lib/frameworks/jasmine.js:38:24) рдкрд░
Driverprovider_.setupEnv.then.then.then.testResult (/home/usr/lib/node_modules/protractor/lib/runner.js:233:28) рдкрд░
_рдкреВрд░реНрдг рдкрд░ (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:797:54)
self.promiseDispatch.done рдкрд░ (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:826:30)
Promise.promise.promiseDispatch рдкрд░ (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:759:13)
at /home/usr/lib/node_modules/protractor/node_modules/q/q.js:525:49
рдлреНрд▓рд╢ рдкрд░ (/home/usr/lib/node_modules/protractor/node_modules/q/q.js:108:17)
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░._рдЯрд┐рдХ рдХреЙрд▓рдмреИрдХ (рдиреЛрдб.рдЬреЗрдПрд╕:423:13)
Function.Module.runMain рдкрд░ (module.js:499:11)


// рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ред
рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕.рдХреЙрдиреНрдлрд┐рдЧ = {
// рдЪрд▓ рд░рд╣реЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ред
рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрддрд╛: ' http://localhost :4444/wd/hub',
рдСрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕рдЯрд╛рдЗрдордЖрдЙрдЯ: 30000,
// рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдХреНрд╖рдорддрд╛рдПрдВ: {
'рдмреНрд░рд╛рдЙрдЬрд╝рд░рдирд╛рдо': 'рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕'
},

// рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рд╕реАрдзреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм
// рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪрд╢реНрдорд╛: ['example_spec.js'],

// рдЬреИрд╕реНрдореАрди-рдиреЛрдб рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред
рддреИрдпрд╛рд░ рдХрд░реЗрдВ: рдлрд╝рдВрдХреНрд╢рди () {
рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');
jasmine.getEnv ()ред AddReporter (рдирдпрд╛ рдЪрдореЗрд▓реАред JUnitXmlReporter ('xmloutput', рд╕рдЪ, рд╕рдЪ));
},

// рдЬреИрд╕реНрдореАрди-рдиреЛрдб рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред
рдЪрдореЗрд▓реА рдиреЛрдбрдСрдкреНрдЯреНрд╕: {
рд╢реЛ рд░рдВрдЧ: рд╕рдЪ,
рдбрд┐рдлрд╝реЙрд▓реНрдЯрдЯрд╛рдЗрдордЖрдЙрдЯрдЕрдВрддрд░рд╛рд▓: 30000
}
};

рдЕрд░реЗ @jkmurthy

рдореИрдВ рдЙрд╕реА рд╕рдЯреАрдХ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред [email protected] рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ред рдЗрд╕ рдкрд░ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реИред

https://github.com/larrymyers/jasmine-reporters/blob/master/src/junit_reporter.js

  • рдЙрдкрдпреЛрдЧ:

    • jasmine.getEnv ()ред AddReporter (рдирдпрд╛ jasmineReporters.JUnitXmlReporter (рд╡рд┐рдХрд▓реНрдк);

рдлрд┐рд░ рднреА рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ 'рдЬреИрд╕реНрдореАрди рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕' рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╣рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ [email protected] рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛, рдЗрд╕рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд░рд┐рдкреЛрд░реНрдЯрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рднреА рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рдХреЛ 0.4.1 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рд╛
рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА
рддреИрдпрд╛рд░ рдХрд░реЗрдВ: рдлрд╝рдВрдХреНрд╢рди () {
рд╡рд░ рдлрд╝реЛрд▓реНрдбрд░рдирд╛рдо = (рдирдИ рддрд┐рдерд┐ ())ред toString ()ред рд╡рд┐рднрд╛рдЬрди ('')ред рдмреНрдпрд╛рд╣ (1, 4)ред рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ ('');
рд╡рд░ mkdirp = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('mkdirp');
var newFolder = "./reports/" + folderName;
рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');

            mkdirp(newFolder, function(err) {
              if (err) {
                console.error(err);
              } else {
                jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter(newFolder, true, true));
              }
            });
          },

рдЕрднреА рддрдХ рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ
рдбреА:\HgBuild\TPSOneSearch\Unstable\Tyler.TPS.OneSearch\Tyler.TPS.Web.OneSearch\app
\test\e2e\oneSearchChromeConf.js:29
jasmine.getEnv ()ред AddReporter (рдирдпрд╛ рдЪрдореЗрд▓реАред JUnitXmlReporter (рдпреВрд░реА, рдЯреА
рд░реБрдП, рд╕рдЪ, ''));
^
рд▓реЗрдЦрди рддреНрд░реБрдЯрд┐: рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред

"рдирдпрд╛ jasmine.JUnitXmlReporter" рдХреЛ "jasmineReporters.JUnitXmlReporter" рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ jasmineReporters рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред

рдЕрдЧрд░ рдореИрдВ рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рдХреЛ рд╡рд╛рдкрд╕ 0.4.1 рдкрд░ рд╡рд╛рдкрд╕ рдХрд░ рджреВрдВ рддреЛ рдпрд╣ рд╢рд╛рдирджрд╛рд░ рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ 2.0 рдореЗрдВ 1.x рд╕реЗ рднрд┐рдиреНрди рдПрдкреАрдЖрдИ рд╣реИ; рдЖрдк рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ; рдЕрдкрдиреЗ рдЖрд╣реНрд╡рд╛рди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВред

JUnitXmlReporter рдХреЗ рд▓рд┐рдП junit_reporter.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЕрдкрдиреА рдХреЙрдиреНрдлрд╝ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ:

рддреИрдпрд╛рд░ рдХрд░реЗрдВ: рдлрд╝рдВрдХреНрд╢рди () {
рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');
рд╡рд░ рд╡рд┐рдХрд▓реНрдк = {
savePath: 'рдХреБрдЫ-рдлрд╝рд╛рдЗрд▓-рдкрде',
рд╕рдореЗрдХрд┐рдд: рд╕рдЪ,
рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рдЪ
};
jasmine.getEnv ()ред AddReporter (рдирдпрд╛ jasmineReporters.JUnitXmlReporter (рд╡рд┐рдХрд▓реНрдк));
},

рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╛?
рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ "ReferenceError: jasmineReporters рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ"

/**
* рджрд┐рдП рдЧрдП рд╕реНрдкреЗрдХ рд░рди рдХреЗ рд▓рд┐рдП JUnit XML рдЬреЗрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
* рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХрд╣рд╛рдБ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИрдВ
* рдпрдерд╛рд╕рдВрднрд╡ рдХрдо .xml рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВред рдмрдЪрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ
* рдПрдХрд▓ XML рдлрд╝рд╛рдЗрд▓, рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп describe , рдпрд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ XML рдлрд╝рд╛рдЗрд▓
* рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рддреНрдпреЗрдХ describe рдХреЗ рд▓рд┐рдП XML рдлрд╝рд╛рдЗрд▓ред
*
* рдЙрдкрдпреЛрдЧ:
*
* jasmine.getEnv ()ред AddReporter (рдирдпрд╛ jasmineReporters.JUnitXmlReporter (рд╡рд┐рдХрд▓реНрдк);
*
* @рдкрд░рдо {рдСрдмреНрдЬреЗрдХреНрдЯ} [рд╡рд┐рдХрд▓реНрдк]
* @рдкрд░рдо {рд╕реНрдЯреНрд░рд┐рдВрдЧ} [savePath] рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: '')
* @рдкрд░рдо {рдмреВрд▓рд┐рдпрди} [рд╕рдореЗрдХрд┐рдд рд╕рднреА] рдХреНрдпрд╛ рд╕рднреА рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реИ a
* рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рд╕рддреНрдп)
* рдиреЛрдЯ: рдпрджрд┐ рд╕рддреНрдп рд╣реИ, {filePrefix} рдХреЛ рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЫреЛрдбрд╝рдХрд░
* рд╡рд┐рд╕реНрддрд╛рд░)
* @рдкрд░рдо {рдмреВрд▓рд┐рдпрди} [рд╕рдореЗрдХрд┐рдд рдХрд░реЗрдВ] рдХреНрдпрд╛ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдгрди рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рд╣реИ
* рдЙрдирдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рд╕рддреНрдп)
* рдиреЛрдЯ: рдпрджрд┐ рд╕рдореЗрдХрди рд╕рднреА рд╕рддреНрдп рд╣реИ рддреЛ рд╕рддреНрдп рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
* рдиреЛрдЯ: рдЕрд╕рддреНрдп рднреА рд╕рдореЗрдХрд┐рдд рд╕рднреА рдХреЛ рдЕрд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
* @рдкрд░рдо {рдмреВрд▓рд┐рдпрди} [useDotNotation] рдХреНрдпрд╛ рд╕реВрдЯ рдирд╛рдореЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИ
* рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдбреЙрдЯреНрд╕, рдЕрд░реНрдерд╛рдд "Class.init" рдирд╣реАрдВ "рдХреНрд▓рд╛рд╕ init" (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рд╕рддреНрдп)
* @param {string} [filePrefix] рд╡рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рд╣реИ рдЬреЛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ
* xml рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ: junitresults-)
* рдиреЛрдЯ: рдпрджрд┐ рд╕рдореЗрдХрд┐рдд рд╕рднреА рд╕рддреНрдп рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗрд╡рд▓ "junitresults" рд╣реИ рдФрд░
* рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд "junitresults.xml"
*/

@ рдЬреЙрди-рдмреНрд░рд┐рдЬ рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдХреЛрдб рдмреИрдХ-рдЯрд┐рдХреНрд╕ рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

@ рдЬреЙрди-рдмреНрд░рд┐рдЬ рдареАрдХ рд╣реИ, рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ jasmineReporters рдЪрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

var jasmineReporters = require('jasmine-reporters');

@mzgol рдореИрдВ рдПрдХ рдмреЗрд╡рдХреВрдл рд╣реВрдБ, рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред

jasmine-reporters рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдкрддреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реАрдзреЗ jasmine рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛; рдЕрдм рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдмреЗрд╣рддрд░ рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рднреНрд░рдо рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ред ;)

@mzgol рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛, рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред

[email protected] рдЬреИрд╕реНрдореАрди 2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджреЗрдЦрд╛/рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИ (рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдо рд╡реИрд╢реНрд╡рд┐рдХ jasmine рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░)ред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдпрд╣ _only_ рдЬреИрд╕реНрдореАрди 2.x рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реНрдореАрди 1.x рдХрд╛ рдирд╣реАрдВ рдЬреЛ рдХрд┐ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдмрдХрд┐ рдЖрдк var jasmineReporters = require('jasmine-reporters'); new jasmineReporters.JUnitXmlReporter(/*...*/); рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрд┐рдЫрд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдХреЛрдИ рд╕рд╛рд░реНрдердХ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА рдЬрд╛рдПрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреИрд╕реНрдореАрди 2.x рдИрд╡реЗрдВрдЯ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред

JUnitXmlReporter рдХреЛ рдЬреИрд╕реНрдореАрди 1.x рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ @juliemr рдХреЗ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реИ:

npm install jasmine-reporters@~1.0.0

рдлрд┐рд░ рдЙрд╕рдХреЗ рдмрд╛рдХреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рд▓рди рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдЬреИрд╕реНрдореАрди-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рд░реАрдбрдореЗ рдХреЛ [email protected] рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣рд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ [email protected] ред рдореИрдВрдиреЗ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦрдВрдб рднреА рдЬреЛрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╢реНрди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрддрд╛ рд╣реИред

рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдХрдореА рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ksraja ред

рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

    onPrepare: function() {

        require('jasmine-reporters');
        jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('test-target/', true, true));

        browser.driver.get('http://localhost:9000');
        require('./test/e2e/models/login-page').login();
    },

рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:

Running "protractor:e2e" (protractor) task

/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.console
_reporter.js:2
    if (! jasmine) {
          ^
ReferenceError: jasmine is not defined
    at /Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-reporters/src/jasmine.
console_reporter.js:2:11
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/jasmine.console_reporter.js:144:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/212400520/PredixExperience/predix-dashboard/node_modules/jasmine-re
porters/src/load_reporters.js:1:63)
    at Module._compile (module.js:456:26)
>> 
Fatal error: protractor exited with code: 8

@jonniespratley рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ npm install jasmine-reporters рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 1.0.1 рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ jasmine-reporters рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

npm install jasmine-reporters@~2.0.3 --save-dev

рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛:

var jasmineReporters = require('jasmine-reporters');
exports.config = {
    framework: 'jasmine2',
    //...  
    //Other configurations...
    //...  
    onPrepare: function () {
        jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            savePath: '..',
            consolidateAll: false
        }));
    },
    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 60000,
        print: function() {}
    }
};

рдЕрдм рдЪрдореЗрд▓реА-рдкрддреНрд░рдХрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдЪрдореЗрд▓реА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
var jasmineReporters = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter('../TestReports/test', true, true));

рдпрд╣ рдЕрдЪреНрдЫрд╛ рдЪрд▓рд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ xml рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ

рдореИрдВрдиреЗ https://github.com/angular/protractor/blob/master/spec/junitOutputConf.js рдкрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди 404 рджреЗрддрд╛ рд╣реИ

@spatchamatla рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг [email protected] рд╕рд┐рдВрдЯреИрдХреНрд╕ (рдЖрджреЗрд╢рд┐рдд рддрд░реНрдХ) рдХреЗ рдПрдХ рдЕрдЬреАрдм рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ [email protected] рд░рд┐рдкреЛрд░реНрдЯрд░ (jasmineReporters.JUnitXmlReporter рдмрдирд╛рдо jasmine.JUnitXmlReporter) рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рд░рд┐рдкреЛрд░реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ README рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд:

var junitReporter = new jasmineReporters.JUnitXmlReporter({
    savePath: '../TestReports/test'
});
jasmine.getEnv().addReporter(junitReporter);

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдлрд╝реЛрд▓реНрдбрд░ '../TestReports/test' рдореМрдЬреВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ
рдЪреБрдкрдЪрд╛рдк рднреАред

рдмреБрдзрд╡рд╛рд░, 15 рдЕрдкреНрд░реИрд▓, 2015 рдЕрдкрд░рд╛рд╣реНрди 4:33 рдмрдЬреЗ, рдмреЗрди рд▓реЛрд╡рд░рд┐рдЬ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@spatchamatla https://github.com/spatchamatla рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг a . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ
[email protected] рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЕрдЬреАрдм рд╕рдВрдпреЛрдЬрди (рдЖрджреЗрд╢рд┐рдд рддрд░реНрдХ)
рдЪрдореЗрд▓реА- [email protected] рд░рд┐рдкреЛрд░реНрдЯрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдХреЗ рд╕рд╛рде
(jasmineReporters.JUnitXmlReporter рдмрдирд╛рдо jasmine.JUnitXmlReporter)ред

рд░рд┐рдкреЛрд░реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ
рдЖрдЧреЗред

рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ README рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд:

var junitReporter = рдирдпрд╛ jasmineReporters.JUnitXmlReporter({
рд╕реЗрд╡рдкрд╛рде: '../рдЯреЗрд╕реНрдЯ рд░рд┐рдкреЛрд░реНрдЯреНрд╕/рдЯреЗрд╕реНрдЯ'
});
jasmine.getEnv ()ред AddReporter (junitReporter);

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/angular/protractor/issues/60#issuecomment -93451490ред

рдХрднреА рднреА рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреИрд╕реНрдореАрди-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/substack/node-mkdirp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

@bloverridge @spenoir , рдореИрдВрдиреЗ [email protected] рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░ рдиреАрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

   //For junit output reports
        var reporters = require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function (caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var prePendStr = browserName + "-" + browserVersion + "-";
            jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
        });

рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдХреЗрд╡рд▓ рдиреАрдЪреЗ рдХреА рддрд░рдл рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдмрдЬрд╛рдп рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдирд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рддрдм рднреА рдпрд╣ рдХрд╣рддрд╛ рд╣реИ

рдЪреЗрддрд╛рд╡рдиреА: '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml' рдХреЗ рд▓рд┐рдП рдЬреВрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдХрд╛рд░рдг:
рд░рд╛рдЗрдиреЛ рдкреНрд░рдпрд╛рд╕: рдЬрд╛рд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
PhantomJs рдкреНрд░рдпрд╛рд╕: рд╡рд┐рдВрдбреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
NodeJS рдкреНрд░рдпрд╛рд╕: EACCES, рдЕрдиреБрдорддрд┐ рдЕрд╕реНрд╡реАрдХреГрдд '/Users/TestReports'

рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдФрд░ рдЕрднреА рднреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ

рдХреНрдпрд╛ 'рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░/рдЯреЗрд╕реНрдЯрд░рд┐рдкреЛрд░реНрдЯреНрд╕' рд╕рд╣реА рдкрде рд╣реИ рдФрд░ рдХреНрдпрд╛ рд╡рд╣ рдлрд╝реЛрд▓реНрдбрд░ рдореМрдЬреВрдж рд╣реИ?

рдмреБрдзрд╡рд╛рд░, 15 рдЕрдкреНрд░реИрд▓, 2015 рдХреЛ рд╢рд╛рдо 5:01 рдмрдЬреЗ, Spatchamatla [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

@рдмреНрд▓реЛрд╡рд░рд┐рдЬ https://github.com/bloverridge @spenoir
https://github.com/spenoir , рдореИрдВрдиреЗ [email protected] рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░
рдиреАрдЪреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

// рдЬреВрдирд┐рдЯ рдЖрдЙрдЯрдкреБрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП
var рд░рд┐рдкреЛрд░реНрдЯрд░ = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕');
var capsPromise = browser.getCapabilities();
capsPromise.then (рдлрд╝рдВрдХреНрд╢рди (рдХреИрдкреНрд╕) {
рд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рдирд╛рдо = caps.caps_.browserName.toUpperCase ();
рд╡рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╡рд░реНрдЬрди = рдХреИрдкреНрд╕.рдХреИрдкреНрд╕_.рд╕рдВрд╕реНрдХрд░рдг;
var prePendStr = browserName + "-" + browserVersion + "-";
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('Protractor/TestReports', true, true, prePendStr));
});

рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдХреЗрд╡рд▓ рдиреАрдЪреЗ рдХреА рддрд░рдл рдпрд╣ рдШрд░ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
рдлрд╝реЛрд▓реНрдбрд░ рдкрде, рдпрд╣ рдЕрднреА рднреА рдХрд╣рддрд╛ рд╣реИ

рд░рд╛рдЗрдиреЛ рдкреНрд░рдпрд╛рд╕: рдЬрд╛рд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
PhantomJs рдкреНрд░рдпрд╛рд╕: рд╡рд┐рдВрдбреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
NodeJS рдкреНрд░рдпрд╛рд╕: рдкрде рдХреЗ рд▓рд┐рдП рддрд░реНрдХред рд╕рдорд╛рдзрд╛рди рддрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдпрд╛ рдФрд░ рдЕрднреА рднреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/angular/protractor/issues/60#issuecomment -93460326ред

'рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░/рдЯреЗрд╕реНрдЯрд░рд┐рдкреЛрд░реНрдЯреНрд╕' рд╡рд╣ рдкрде рд╣реИ рдЬреЛ рд╣реЛрдо рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрдм рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдерд╛

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

рдФрд░ рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛

screen shot 2015-04-15 at 12 07 09 pm

рдЬрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛, рддрдм рднреА рдпрд╣ рджреЗрддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдиреА: '../TestReports', 'CHROME-41.0.2272.118-TestImpersonationPage.xml' рдХреЗ рд▓рд┐рдП рдЬреВрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдХрд╛рд░рдг:
рд░рд╛рдЗрдиреЛ рдкреНрд░рдпрд╛рд╕: рдЬрд╛рд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
PhantomJs рдкреНрд░рдпрд╛рд╕: рд╡рд┐рдВрдбреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
NodeJS рдкреНрд░рдпрд╛рд╕: EACCES, рдЕрдиреБрдорддрд┐ рдЕрд╕реНрд╡реАрдХреГрдд '/Users/TestReports'

рдЖрдк TestReports рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╢рд┐рдерд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕рдХреЗ рдмрд╛рджред

рдмреБрдзрд╡рд╛рд░, 15 рдЕрдкреНрд░реИрд▓, 2015 рдХреЛ рд╢рд╛рдо 5:10 рдмрдЬреЗ, Spatchamatla [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

'рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░/рдЯреЗрд╕реНрдЯрд░рд┐рдкреЛрд░реНрдЯреНрд╕' рд╡рд╣ рдкрде рд╣реИ рдЬреЛ рд╣реЛрдо рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ,
рддрдм рдореИрдВрдиреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛

jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('../TestReports', true, true, prePendStr));

рдФрд░ рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛

[рдЫрд╡рд┐: рд╕реНрдХреНрд░реАрди рд╢реЙрдЯ 2015-04-15 рдЕрдкрд░рд╛рд╣реНрди 12,07,09 рдмрдЬреЗ]
https://cloud.githubusercontent.com/assets/4671240/7163457/278cffa6-e368-11e4-9994-2c0b5d33f07c.png

рдЬрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдпрд╛, рддрдм рднреА рдпрд╣ рджреЗрддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдиреА: '../TestReports' рдХреЗ рд▓рд┐рдП рдЬреВрдирд┐рдЯ рд░рд┐рдкреЛрд░реНрдЯ рд▓рд┐рдЦрдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛,
'CHROME-41.0.2272.118-TestImpersonationPage.xml'ред рдХрд╛рд░рдг:
рд░рд╛рдЗрдиреЛ рдкреНрд░рдпрд╛рд╕: рдЬрд╛рд╡рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
PhantomJs рдкреНрд░рдпрд╛рд╕: рд╡рд┐рдВрдбреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
NodeJS рдкреНрд░рдпрд╛рд╕: EACCES, рдЕрдиреБрдорддрд┐ рдЕрд╕реНрд╡реАрдХреГрдд '/Users/TestReports'

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/angular/protractor/issues/60#issuecomment -93466365ред

рдЬрд╝рд░реВрд░, рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдФрд░ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @spenoir

рдорд╣рд╛рди рдзрд╛рдЧрд╛ред рдмрд╣реБрдд рдорджрдж рдХреАред
рд╕реЛрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдирд╣реАрдВред рд╣рдЯрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ :)
рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛред

@jkmurthy @ksraja рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪреАрдмрджреНрдз jasmineReports рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
var jasmineReporters = require('jasmine-reporters');

рдЪрдореЗрд▓реА-рд░рд┐рдкреЛрд░реНрдЯрд░реНрд╕ рд░реАрдбрдореА рдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: https://github.com/larrymyers/jasmine-reporters#protractor

рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ https://github.com/bcaudan/jasmine-spec-reporter/blob/master/docs/protractor-configuration.md рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ред

@josephdpurcell рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд┐рдВрдХ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдореЗрд░реА рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ!
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ mkdirp рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп jasmine 2.x рдФрд░ jasmine-reporters 2.X рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рд╣реИрдВред
рдпрджрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рдореВрдХ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИред

   var folderName = ('output_folder');
    var mkdirp = require('mkdirp');
    mkdirp(folderName, function(err) {
      if (err) {
        console.error(err);
       } else {
          var jasmineReporters = require('jasmine-reporters');
          jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
            consolidateAll: true,
            savePath: folderName,
             filePrefix: 'xmloutput-'
            }));
         }
    });
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

nt3rp picture nt3rp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

premkh9 picture premkh9  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

luakri picture luakri  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

psech picture psech  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

davidkarlsen picture davidkarlsen  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ