Cucumber-js: рдкрд╣рд▓реА рдмрд╛рд░ рдлреЗрд▓ рд╣реЛрдиреЗ рдкрд░ рдЯреЗрд╕реНрдЯ рд░рдирд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдЬреБрд▓ре░ 2016  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cucumber/cucumber-js

рдкрд╣рд▓реА рд╡рд┐рдлрд▓рддрд╛ рдорд┐рд▓рдиреЗ рдкрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореИрдВ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдмрдирд╛рдпрд╛ рдерд╛:

    this.After(function (scenario, callback) {
        if (scenario.isFailed()) {
            browser.takeScreenshot().then(function(png) {
                var decodedImage = new Buffer(png, 'base64').toString('binary');
                scenario.attach(decodedImage, 'image/png');
                browser.quit();
                callback();
            });
        } else {
            callback();
        }
    });

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рддрд░реАрдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ! рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдХреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдЬреЛ рдХрд┐ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ рдпрджрд┐ рдЯреАрдо рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕рджрд╕реНрдп рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ! рдХреНрдпрд╛ рдЖрдк рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛!

рдзрдиреНрдпрд╡рд╛рдж

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

рдХрдХрдбрд╝реА-рдЬреЗрдПрд╕ рдореЗрдВ --fail-fast рд╕реАрдПрд▓рдЖрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдкрд╣рд▓реА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред

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

рдХрдХрдбрд╝реА-рдЬреЗрдПрд╕ рдореЗрдВ --fail-fast рд╕реАрдПрд▓рдЖрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдкрд╣рд▓реА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ npm task рдЬреИрд╕реЗ "e2e-local": "scripts/test-e2e.sh local" рд╣реИ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ: grunt test:e2e:"$1" --tags "$2" рдФрд░ рдЧреНрд░рдВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

      // Functional test configuration
        protractor: {
            options: {
                configFile: 'test/protractor-devel-conf.js',
                keepAlive: false,
                noColor: false,
                args: {
                    cucumberOpts: {
                        tags: grunt.option('tags')
                    }
                }
            },
            local: {
                options: {
                    configFile: 'test/protractor-devel-conf.js',
                    keepAlive: false
                }
            },
            live: {
                options: {
                    configFile: 'test/protractor-live-conf.js',
                    keepAlive: false
                }
            }
        },

рдореИрдВрдиреЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдкрд░ --fail-fast рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рдЬреИрд╕реЗ:

  • npm run e2e-local --tags <strong i="14">@TAG</strong> --fail-fast рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛
  • grunt test:e2e:"$1" --tags "$2" --fail-fast рд▓реЗрдХрд┐рди рди рддреЛ...

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ! рдХреНрдпрд╛ рддреБрдо рдмрддрд╛ рд╕рдХрддреЗ рд╣реЛ!?

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

@bmsoko рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдЕрдЧрд░ рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ

рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдмрдВрдж рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреГрдкрдпрд╛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ

@charlierudolph рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рдЧреНрд░рдВрдЯ рдкреНрд▓рдЧрдЗрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рдХрд░реВрдБрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

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

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

dblooman picture dblooman  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

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