рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ https://github.com/angular/protractor/issues/4311 рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рдореИрдВ Cucumberjs рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЬреИрд╕рд╛ рдХрд┐ @wswebcreation https://github.com/wswebcreation рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЙрд╕ рдЕрдиреНрдп рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдирдпрд╛ рдЦреЛрд▓рд╛ред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдЕрдВрддрд┐рдо рд░рд┐рдХреЙрд░реНрдб 12 рдордИ 2017, 14:03 рдХреЛ рдерд╛ред рдареАрдХ рдЖрдкрдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рддрд╛рд░реАрдЦред
рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ... рдлрд┐рд░ рдореБрдЭреЗ 3 рдЯреИрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рджреЛ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдЬрд┐рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред 12 рдордИ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ:
protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags ~<strong i="13">@ignore</strong> --cucumberOpts.tags <strong i="14">@smoke</strong>,@sprint
рдЖрдкрдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣реА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ "рдЯрд┐рдХрдЯ" рдХреЗ рд╕рд╛рде рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдерд╛ред
protractor ./FM_IntTest_UI_conf.js --disableChecks [email protected] --params.login.passw=mypassword --cucumberOpts.tags '<strong i="18">@smoke</strong> or <strong i="19">@rt</strong>' --cucumberOpts.tags 'not <strong i="20">@ignore</strong>'
рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐: рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:155:15 рдкрд░
C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:307:21 рдкрд░
Array.forEach (рдореВрд▓) рдкрд░
parseArgs рдкрд░ (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:305:16)
Object.Argv.self.parse рдкрд░ (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\node_modules\optimist\index.js:140:16)
рд╡рд╕реНрддреБ рдкрд░ред (C:\Users\echavez\AppData\Roaming\npm\node_modules\protractor\built\cli.js:158:21)
рдореЙрдбреНрдпреВрд▓._рдХрдВрдкрд╛рдЗрд▓ рдкрд░ (рдореЙрдбреНрдпреВрд▓.рдЬреЗрдПрд╕:571:32)
Object.Module._extensions..js рдкрд░ (module.js:580:10)
рдореЙрдбреНрдпреВрд▓.рд▓реЛрдб рдкрд░ (рдореЙрдбреНрдпреВрд▓.рдЬреЗрдПрд╕:488:32)
tryModuleLoad рдкрд░ (module.js:447:12)
рдореИрдВ рдХрдХрдбрд╝реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЪрд░рдг рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рднреА рдмрджрд▓ рдЧрдпрд╛ рд╣реИ? рдЗрд╕реЗ рдЕрдм рдФрд░ рдЬрдЯрд┐рд▓ рдХреНрдпреЛрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпреЛрдВрдХрд┐ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪрд░рдг рдРрд╕реЗ рд╣реИрдВ рдЬреЛ рдХрдИ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рдХреЛрдб рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ? рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЕрддрд┐рд░реЗрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ред рдХреНрдпреЛрдВ?
рдореЗрд░реА test.spec.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрднреА рдЬреЛ рдХреБрдЫ рд╣реИ рдЙрд╕рдХрд╛ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
this.Given('I am testing my Widget Application', function (callback) {
edirp.edirejectwidgetlink.click().then(function(){
callback();
}).catch(function(reason) {
console.log('ERROR: Widget button not found');
callback(reason);
});
});
this.When('There are records in the Widget List', function() {
edirp.edigetrow.count().then(function(cnt){
if(cnt>0){
return recordsFound = cnt;
}else{
return recordsFound = 0;
}
});
});
this.Then('Header name of the Widget List is '(.+)'', function(header, callback) {
expect(po.headertext.getText()).to.eventually.equal(header).then(function(){
callback();
}).catch(function(reason) {
console.log('Warning: Incorrect Text.');
callback(reason);
});
});
рдпрд╣рд╛рдБ рдПрдХ "рдЕрдкрдбреЗрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреА рдЧрдИ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ... рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рд╣реИ:
var seleniumWebdriver = require('selenium-webdriver');
var {defineSupportCode} = require('cucumber');
defineSupportCode(function({Given, When, Then}) {
Given('I am testing my Widget Application', function (callback) {
edirp.edirejectwidgetlink.click().then(function(){
callback();
}).catch(function(reason) {
console.log('ERROR: Widget button not found');
callback(reason);
});
When('There are records in the Widget List', function() {
edirp.edigetrow.count().then(function(cnt){
if(cnt>0){
return recordsFound = cnt;
}else{
return recordsFound = 0;
}
});
Then('Header name of the Widget List is '(.+)'', function(header, callback) {
expect(po.headertext.getText()).to.eventually.equal(header).then(function(){
callback();
}).catch(function(reason) {
console.log('Warning: Incorrect Text.');
callback(reason);
});
});
рдпрджрд┐ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдХрдИ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдХрдм, рдлрд┐рд░ ... рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЧрд┐рдирд╛ рдЬрд╛рдирд╛ рд╣реИ ?:
рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдорд░реНрдерди рдХреЛрдб (рдлрд╝рдВрдХреНрд╢рди ({рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░, рдФрд░, рдХрдм, рдФрд░, рдФрд░, рдлрд┐рд░, рдФрд░, рдФрд░, рдФрд░}) {
рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рд╣реИ... рддреЛ рдЕрдм, рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ "рдЬрдм рдИрдбреАрдЖрдИ-рдЕрд╕реНрд╡реАрдХрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ" рдЪрд░рдг рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рдХреЗрд╡рд▓ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рди рд▓реЗрдВред
рдпрджрд┐ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдХрдИ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдХрдм, рдлрд┐рд░ ... рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЧрд┐рдирд╛ рдЬрд╛рдирд╛ рд╣реИ ?:
рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдорд░реНрдерди рдХреЛрдб (рдлрд╝рдВрдХреНрд╢рди ({рджрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░, рдФрд░, рдХрдм, рдФрд░, рдФрд░, рдлрд┐рд░, рдФрд░, рдФрд░, рдФрд░}) {
рдирд╣реАрдВред Given
, When
, рдФрд░ Then
рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдХрдИ рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ 1.x рд╕реЗ this.Given
, рдЖрджрд┐)ред And
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИред рдЖрдк рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдореЗрдВ defineSupportCode
рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ README.md
рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ
рдореИрдВ рдХрдХрдбрд╝реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЪрд░рдг рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рднреА рдмрджрд▓ рдЧрдпрд╛ рд╣реИ?
рджреЗрдЦреЗрдВ https://github.com/cucumber/cucumber-js/issues/679
рдЗрд╕реЗ рдЕрдм рдФрд░ рдЬрдЯрд┐рд▓ рдХреНрдпреЛрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпреЛрдВрдХрд┐ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИ
рдзрдиреНрдпрд╡рд╛рдж рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛!
@charlierudolph Tnx рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП!
рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред