Protractor: webdriver-manager stdout maxBuffer ์ดˆ๊ณผ

์— ๋งŒ๋“  2014๋…„ 05์›” 07์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: angular/protractor

์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”

ci์—์„œ๋Š” 2๊ฐœ์˜ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ผ grunt ์ž‘์—…์—์„œ ๊ฐ๋„๊ธฐ์™€ webdriver-manager ์‹œ์ž‘์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์–‘: Windows 7, ๋…ธ๋“œ v0.10.26, ๊ฐ๋„๊ธฐ 0.22.0, ๊ทธ๋ŸฐํŠธ ๊ฐ๋„๊ธฐ ๋Ÿฌ๋„ˆ(๊ฐ๋„๊ธฐ 0.22.0 ์‚ฌ์šฉ)

๋‚˜๋Š” ๊ทธ๋ŸฐํŠธ ์…ธ webdriver-manager ์‹œ์ž‘ ๋ฐ ๊ฐ๋„๊ธฐ์˜ 2 ๊ฐ€์ง€ ์ž‘์—…๊ณผ ๋™์‹œ์— ๊ทธ๋ŸฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์‹คํ–‰ํ•˜๋ฉด ํ•ญ์ƒ ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ ,
์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ๋Š” ์„ฑ๊ณตํ–ˆ์ง€๋งŒ 4๋ฒˆ์งธ ๋˜๋Š” 5๋ฒˆ์งธ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์ด ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค......๊ฒฝ๊ณ : stdout maxBuffer๊ฐ€ ์ดˆ๊ณผ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜๋ ค๋ฉด --force๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์Šคํฐ ๋ช…๋ น ๋ฒ„ํผ ์ œํ•œ์ด ์ดˆ๊ณผ๋˜๊ณ  ํ•˜์œ„ ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

webdriver-manager spawn ๋ช…๋ น์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Webdriver-manager์—์„œ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
return childProcess.spawn(winCommand, finalArgs,
{ stdio: '์ƒ์†' });

์—๊ฒŒ:
return childProcess.spawn(winCommand, finalArgs,
{ stdio: '๋ฌด์‹œ' });

webdriver-manager๊ฐ€ ๋ฒ„ํผ๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์Šคํฐ ๋กœ๊น…์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ–ฅํ›„ ๊ฐ๋„๊ธฐ ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์‘๋‹ต์ด ๋Š๋ฆฐ ์  ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ์˜ค๋ฅ˜๊ฐ€ grunt shell์ด โ€‹โ€‹Node์˜ child_process.exec ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ •์˜ maxBuffer ์˜ต์…˜์„ ํ—ˆ์šฉํ•˜๋ฉฐ, ์ด ์˜ต์…˜์„ ๋Š˜๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

grunt.initConfig({
    shell: {
        foo: {
            command: 'webdriver-manager start',
            options: {
                stderr: false,
                execOptions: {
                    maxBuffer: 400*1024 // or whatever other large value you want
                }
            }
        }
    }
});

์ด๊ฒƒ์€ ๊ฟ€๊ฟ€ํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์‘๋‹ต์ด ๋Š๋ฆฐ ์  ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด grunt์˜ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. webdriver-manager๊ฐ€ ํ•˜๋Š” ๋ชจ๋“  ์ผ์€ ์ถœ๋ ฅ์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” grunt๊ฐ€ ์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ํŠนํžˆ ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ ์•„๋งˆ๋„ grunt์—๊ฒŒ stdout์„ ๋ฌด์‹œํ•˜๋„๋ก ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” ์ค„๋ฆฌ
์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•˜๊ณ  webdriver-manager์˜ ์ž์‹ ํ”„๋กœ์„ธ์Šค์—์„œ stdout์„ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ŸฐํŠธ ์ž‘์—… ์ถœ๋ ฅ์—๋Š” ๋กœ๊ทธ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜์ง€๋งŒ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ํ›„์—๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ 'stdout maxBuffer ์ดˆ๊ณผ๋จ'์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” webdriver ๊ด€๋ฆฌ์ž์—์„œ stdio๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ŸฐํŠธ ๋ฐ”๊พธ๊ธฐ ์ž‘์—…์„ ์‹คํ–‰ํ•จ์œผ๋กœ์จ๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ์šฐํšŒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์‘๋‹ต์ด ๋Š๋ฆฐ ์  ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด ์˜ค๋ฅ˜๊ฐ€ grunt shell์ด โ€‹โ€‹Node์˜ child_process.exec ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ •์˜ maxBuffer ์˜ต์…˜์„ ํ—ˆ์šฉํ•˜๋ฉฐ, ์ด ์˜ต์…˜์„ ๋Š˜๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

grunt.initConfig({
    shell: {
        foo: {
            command: 'webdriver-manager start',
            options: {
                stderr: false,
                execOptions: {
                    maxBuffer: 400*1024 // or whatever other large value you want
                }
            }
        }
    }
});

์ด๊ฒƒ์€ ๊ฟ€๊ฟ€ํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰