Cucumber-js: рдмрд┐рдлреЛрд░рд╕реНрдЯреЗрдк / рдЖрдлреНрдЯрд░рд╕реНрдЯреЗрдк рд╣реБрдХ рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЬрдире░ 2018  ┬╖  33рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cucumber/cucumber-js

рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред this рд╡рд┐рд╢реНрд╡ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

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

рдирдорд╕реНрддреЗ,

рд╕реНрдЯреЗрдк рд╣реБрдХ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рдФрд░/рдпрд╛ рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ?

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

@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 рдореЗрдВ рд╣реБрдХ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕