์ฌ๋ฌ๋ถ ์๋ ํ์ธ์
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์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. 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
}
}
}
}
});
์ด๊ฒ์ ๊ฟ๊ฟํ ๋ฌธ์ ์ด๋ฏ๋ก ๋ซ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ต์ด ๋๋ฆฐ ์ ์ฃ์กํฉ๋๋ค. ๋๋ ์ด ์ค๋ฅ๊ฐ grunt shell์ด โโNode์
child_process.exec
๋ช ๋ น์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ์ ์ ์maxBuffer
์ต์ ์ ํ์ฉํ๋ฉฐ, ์ด ์ต์ ์ ๋๋ ค์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค.์ด๊ฒ์ ๊ฟ๊ฟํ ๋ฌธ์ ์ด๋ฏ๋ก ๋ซ์ต๋๋ค.