рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред this
рд╡рд┐рд╢реНрд╡ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
@charlierudolph рдореИрдВ рдпрд╣рд╛рдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рдкрд░ рдХреБрдЫ рд╕реВрдЪрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдерд╛ рдЬрд┐рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ support_code_library_builder/define_helpers.js рдХреЛ рджреЗрдЦрд╛ред рд▓реЗрдХрд┐рди рдЗрди рд╣реБрдХреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХреБрдЫ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж
рдЕрд▓реА
рдкреАрдПрд╕ рдкрд░рд┐рдгрд╛рдо рдЬреЗрд╕рди рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдЪрд░рдг рдкрд░рд┐рдгрд╛рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкрд╛рд╕/рдЕрд╕рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдЬреЛ рдореИрдВрдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЪрд░рдг рдХреЗ рдмрд╛рдж рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдирд╛ рд╣реИред рдХрдХрдбрд╝реА рд░реВрдмреА рдореЗрдВ рдореИрдВрдиреЗ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рджреГрд╢реНрдп рд╡рд╕реНрддреБ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЖрдИрдПрдордПрдЪрдУ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░рдг рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдпрд╣ рднреА рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рдХрджрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд╛рд╕/рдЕрд╕рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
@charlierudolph рдореИрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВред
рд░рдЬрд┐рд╕реНрдЯрд░рд╣реИрдВрдбрд▓рд░ рдкрджрд╛рд╡рдирдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЕрд╕рдлрд▓ рдЪрд░рдгреЛрдВ рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
```
this.registerHandler('StepResult', function (рдИрд╡реЗрдВрдЯ, рдХреЙрд▓рдмреИрдХ) {
var stepResult = event.getPayloadItem('stepResult');
if (stepResult.getStatus() == 'failed') {
takeScreenshot()
.then(function () {
callback();
});
} else {
callback();
}});
````
рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЪрд░рдг/рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд╣реБрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗ рдЧрдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдзрд╛рдЧреЗ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдкреНрд░рд┐рдВрдЯрд╕реНрдХреНрд░реАрди рд▓реЗ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдореИрдВ рдЗрди рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЖрд╡рд╛рдЬ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИред рдХрдХрдбрд╝реА 1.x рдореЗрдВ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд╣реБрдХ рдХреЗ рд▓рд┐рдП:
element.all(by.css('a')).each(function(link) {
link.getAttribute('href').then(function(href) { ... });
});
рдлрд┐рд░ рд╕рднреА рдмрд╛рд╣рд░реА рдХрдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг-рд╕реВрдЯ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреАрд░рд╛ 4.0.0 рдФрд░ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ 4.0.14 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рд╕рд╛рдЗрдб-рдиреЛрдЯ: рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдХрдХрдбрд╝реА 1.xx рдореЗрдВ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк () рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдб рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╣рдордиреЗ рджреМрдбрд╝-рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рджреЗрдЦреАрдВред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдХрдХрдбрд╝реА 4.0.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рддрдХ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдирдорд╕реНрддреЗ,
рд╕реНрдЯреЗрдк рд╣реБрдХ рд╕реЗ рдкрд╣рд▓реЗ/рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдХреНрдпрд╛ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ? рдореИрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдпрджрд┐ рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рдерд╛ред
"рд╕рдВрд▓рдЧреНрди" рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реНрд╡ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИ https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md
Thnx
рд╣рд╛рдп @ рдЧрд╛рдЬреЛ4256 ,
рдореИрдВ рдХрдХрдбрд╝реА 4.0.0 рдФрд░ рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
After(function (scenario) {
if (scenario.result.status === Status.FAILED) {
const World = this;
return browser.takeScreenshot().then(function (buffer) {
return World.attach(buffer, 'image/png');
});
}});
рдпрд╣ рд╣рд░ рдЕрд╕рдлрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдмрд╛рдж рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдЧрд╛ред (рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдХрдбрд╝реА рдХреЗ рд╕рд╛рде, рдЬрдм рднреА рдПрдХ рдХрджрдо рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреВрд░рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓рдЧрднрдЧ "рдЖрдлреНрдЯрд░ рд╕реНрдЯреЗрдк рдлреЗрд▓" рдХреЗ рд╕рдорд╛рди рд╣реИред
рдЖрд╢рд╛ рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛ред
рд╣рд╛рдп @mracz ,
thnx, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рдмрд╛рдж рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛)ред
рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдбрд┐рдлреЙрд▓реНрдЯ рд╡рд░реНрд▓реНрдб рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ?
Thnx
рд╣рд╛рдп @ рдЧрд╛рдЬреЛ4256 ,
рдореЗрд░реЗ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реНрд╡ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣реА рд╣реИ:
const { setWorldConstructor } = require('cucumber');
function CustomWorld( { attach } ) {
this.attach = attach;
}
setWorldConstructor(CustomWorld);
@mracz , рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ:
When('I do something', function () {
return takeScreenshot(this, () => {
return $(...).click();
});
});
рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдпрд╣ рд╣реИ:
export function takeScreenshot(world, stepToExecute: () => promise.Promise<any>): promise.Promise<any> {
return stepToExecute().then(() => {
return doTakeScreenshot(world);
}).catch((err) => {
return doTakeScreenshot(world).then(() => {
throw err;
});
});
}
function doTakeScreenshot(world) {
return browser.takeScreenshot().then((screenshot) => {
world.attach(screenshot, 'image/png');
}).catch((err) => {
console.warn('Could not create screenshot', err);
});
}
рдореИрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд░рдХреНрд╖рд╛рддреНрдордХ рд╣реЛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдиреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдЕрднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ AfterStep
рд╣реБрдХ рдореБрдЭреЗ рдХрдо рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдореИрдВ рдРрд╕реЗ рджрд╛рд╡реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмреЗрдХрд╛рд░ рд╣реЛрдЧрд╛), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реБрдХ рд╢рд╛рдпрдж рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Then some element is not shown
ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╡рд┐рд╢реНрд╡ рд╡рд╕реНрддреБ рд╡рд╣рд╛рдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред
рдпрд╣рд╛рдВ AfterStep
рд╣реБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ (рд╡реЗрдХреНрдЯрд░ рдШрдбрд╝рд┐рдпреЛрдВ рдпрд╛ рд▓реИрдореНрдкрдкреЛрд░реНрдЯ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред /рд╕реАрд╕реА @tooky @jbpros
рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░рдгреЛрдВ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред
рдЕрднреА, рд╣рдо рдХрдХрдбрд╝реА рд╕реЗ StepDefinitions рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред
рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдВрднрд╡ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рд░рд╛рдп рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ!
рдпрд╣рд╛рдВ рд╕рдВрдШрд░реНрд╖ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рдВрдХреНрд╢рди рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ: https://github.com/PeerioTechnologies/peerio-icebear/blob/dev/test/e2e/code/hooks.js#L28
рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдпрд╣рд╛рдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛: рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд╛рдХрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦ рд╕рдХреЗрдВ рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдореЛрдбрд▓ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдПрдХ рдкрд░рд┐рджреГрд╢реНрдп рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрджрдо рдХреЗ рдмрд╛рдж рдкреГрд╖реНрда рдкрд░ рдЙрди рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рдореЙрдбрд▓реЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдирд╛рдЬреБрдХ рдирд╣реАрдВ рд╣реИрдВред
рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛: рдпрджрд┐ рдХреЛрдИ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдЯреВрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣реА рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐, рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдЬреЛ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдП рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЖрджрд┐), рддреЛ рдХрдХрдбрд╝реА рдкреНрд░рдЧрддрд┐ рдкрд░ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдк рд╣реБрдХ рдореЗрдВ рдЯреВрд▓ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рджреЗрдЦрдиреЗ рдореЗрдВ рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд╣реИред
KyleFairns, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдбреИрд╢рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдирдорд╕реНрддреЗ,
рд╣рдо рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рдмрд╛рдж рдХреЛрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐ рддреЛ рдирд╣реАрдВ рд╣реИред рдЕрд╕рдлрд▓ рдХрджрдо рд╣реА рдирд╣реАрдВред
(рдмрд┐рдЯ @ рдорд╛рд░реНрдХрд╕-рд▓реБрдВрдбрд┐рди -86 рдЬреИрд╕рд╛ рд╣реА)
рдЕрдм рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдмрд╛рдж рд╣реА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддреЛ рдХреНрдпрд╛ рдпрд╣ рд░реЛрдб рдореИрдк рдкрд░ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИрдВ?
рдореБрдЭреЗ рдЕрднреА рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ WebDriverIO рдореЗрдВ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХрдХрдбрд╝реА рдХреЗ рд▓рд┐рдП рд╣реБрдХ рд╣реИ рдЬреЛ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ...
рдирдорд╕реНрддреЗ,
рд╕реНрдЯреЗрдк рд╣реБрдХ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░/рдпрд╛ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ?
рдирдорд╕реНрддреЗ,
рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ @ рдкреНрд░рд╢рд╛рдВрдд-рд╕реБрддрд╛рд░рд┐рдпрд╛ред
рд╕реНрдЯреЗрдк рд╣реБрдХ рдпрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред
рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВред рдЕрднреА рднреА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдИ рд░реЛрдбрдореИрдк рдпрд╛ рдХреБрдЫ рд╣реИ? рдЪреВрдВрдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рджрд░реНрдж рдмрд┐рдВрджреБ рд╣реИ, рд╢рд╛рдпрдж рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдпрд╛рди рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
@aslakhellesoy рдХреНрдпрд╛ рдХреЛрдИ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдпрд╛ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? AFAIK #1058 рдФрд░ #1121 рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрд╛ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╣реЗ рд▓реЛрдЧреЛрдВ,
рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ рд╣реИ: https://github.com/cucumber/cucumber-js/pull/1198ред
рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
@aslakhellesoy , рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ/рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкреАрдЖрд░ (# 1198) рдмрдирд╛рдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдореБрдЭреЗ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
cc: @charlierudolph
рдХреЛрдИ рд╕реБрдзрд╛рд░? рдЗрд╕реЗ рднреА рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ :)
рдореБрдЭреЗ 2 рдкреАрдЖрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ @leonardonelson91
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛
https://github.com/cucumber/cucumber-js/pull/1198
https://github.com/cucumber/cucumber-js/pull/1058
@charlierudolph рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреНрдпрд╛ BeforeStep
рдФрд░ AfterStep
рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрдВрдЬреАрдХреГрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд░рдг рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рднреА рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рдореИрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП setDefinitionFunctionWrapper
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдЪрд░рдгреЛрдВ рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдЫреЛрдЯрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рддрд╛рдХрд┐ рдЪрд░рдг рдЕрднреА рднреА рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдореИрдВ setDefinitionFunctionWrapper
рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣рд╛рдВ рднреА рдЗрд░рд╛рджрд╛ рдХреНрдпрд╛ рдерд╛ред
рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░рдг/рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреЛрдИ рдХрджрдо рдЧреБрдЬрд░рддрд╛ рд╣реИ/рдЕрд╕рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдордпрдмрд╛рд╣реНрдп рдпрд╛ рдЕрдиреНрдпрдерд╛ рдХреЗ рдХрд╛рд░рдг)
рдмрд╕ рдЗрд╕рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдПрдХ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рддрдм рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░рдг рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХрддрд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЗрд╡реЗрдВрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдХреБрдЫ рдорддрджрд╛рди рд╕рддреНрдпрд╛рдкрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рд╣реБрдХ рдореЗрдВ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд┐рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред
@davidjgoss @charlierudolph рдХреГрдкрдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЪреАрдЬрд╝ рдХреЛ рдкрд╣рд▓реЗ/рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдбрд┐рдлрд┐рдирд┐рд╢рди рдлрд╝рдВрдХреНрд╢рдирд╡рд╛рдкрд░ рдХреЗ рдирдореВрдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЗ рд╕рд╛рде рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?, рдореИрдВ рдирд╛рдЗрдЯрд╡реЙрдЪ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдирдорд╕реНрддреЗ @RArkasali рдпрд╣рд╛рдБ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдБ:
import {setDefinitionFunctionWrapper} from "cucumber";
setDefinitionFunctionWrapper(function(fn) {
return async function(...args) {
try {
return await fn.apply(this, args);
} catch (ex) {
await this.takeScreenshot();
throw ex;
}
};
});
(рдЬрд╣рд╛рдВ takeScreenshot
рдЖрдкрдХреЗ рдХрд╕реНрдЯрдо World
рдкрд░ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдирд╛рдЗрдЯрд╡реЙрдЪ рд╕реЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдХрд░реЗрдВрдЧреЗ рд╣реЛрдирд╛ред)
рддреЛ рдпрд╣ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдЧрд╛ рдпрджрд┐ рдЪрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рднреАрддрд░ рд╕реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ (рдЬреИрд╕реЗ рдПрдХ рджрд╛рд╡рд╛ рд╡рд┐рдлрд▓рддрд╛) рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЧреИрд░-рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЙрд▓рдЭрди рдореЗрдВ рдерд╛, рдЬрдм рддрдХ рдХрд┐ return "pending"
рдХреЗ рд╕рд╛рде рдПрдХ рдХрджрдо рдХреЛ рд╕рдВрднрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рдЬрдм рддрдХ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдирд┐рдЧрд▓ рд░рд╣рд╛ рдерд╛ред
рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛
рдирдорд╕реНрддреЗ,
рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ рдЕрднреА рднреА рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?
рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЪрд░рдг рдФрд░ рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╕рднреА рдЪрд░рдг рдирд╛рдореЛрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде "рд▓реЙрдЧ" рдлрд╝рд╛рдЗрд▓ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдХрд╕реНрдЯрдо рдлреЙрд░реНрдореЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реИред
рдЗрд╕реЗ https://github.com/cucumber/cucumber-js/pull/1416 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ
https://github.com/cucumber/cucumber-js/pull/1416 рдореЗрдВ рд╣реБрдХ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ,
рд╕реНрдЯреЗрдк рд╣реБрдХ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░/рдпрд╛ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ?