๊ธฐ๋ฅ ์์ฒญ์ด ๋ฌธ์ ์ ๊ด๋ จ๋์ด ์์ต๋๊น?
์ ๋ JavaScript ๋ฐ ์น๊ตฌ๋ค์ ์ํ ๋์ฐ๋ณ์ด ํ
์คํธ ํ๋ ์์ํฌ์ธ StrykerJS์ cucumber-js์ ๋ํ ์ง์์ ์ถ๊ฐํ๋ ์ค์
๋๋ค. https://github.com/stryker-mutator/stryker-js/pull/2970 ์ฐธ์กฐ
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ค์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ์ฌ์ค, ๋๋ ์ด๋ฏธ MR์์ ๊ทธ๋ ๊ฒ ํ๊ณ ์๋ค. ๊ทธ๋ฌ๋ ๊ตฌํ์ด ํจ์น ๋ฆด๋ฆฌ์ค ๋ฒ์ ์์ ์ค๋จ๋ ์ ์๊ธฐ ๋๋ฌธ์ ํ๊ณ ์ถ์ง ์์ ๋ฌธ์ํ๋์ง ์์ API๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๊ณต๊ฐ API๋ง ์ฌ์ฉํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค.
์ํ๋ ์๋ฃจ์ ์ค๋ช
Cli
ํด๋์ค๋ฅผ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋ฌธ์ํํ PR์ ์๋ฝํ์๊ฒ ์ต๋๊น?
const { Cli } = require('@cucumber/cucumber')
๋ฌธ์ ๋๋ ํ ๋ฆฌ์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ ํ์ผ( programmatic-usage.md
) ๋๋ cli.md
ํ์ผ์ ์ถ๊ฐํฉ๋๋ค.
๊ณ ๋ คํ ๋์์ ๊ธฐ์ ํ์ญ์์ค
-
์ถ๊ฐ ์ปจํ
์คํธ
๋์ฐ๋ณ์ด ํ
์คํธ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ API๊ฐ ํ์ํฉ๋๋ค. ๋จ์ํ childProcess.exec
๋ฅผ ํธ์ถํ์ฌ ์ค์ด-js๋ฅผ ์คํํ๋ ๊ฒ์ ํจ๊ณผ๊ฐ ์์ง๋ง Stryker๋ ๋์ฐ๋ณ์ด ํ
์คํธ ์คํ ์ค์ ์ค์ด-js๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ์ข์ง ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ด๋ถ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋น์ ๋ง์ด ์๋๋๋ค.
๊ทธ๋ฐ API๋ฅผ ์์ ํํ๊ณ ๋ฌธ์ํํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์.
@cucumber/cucumber-js ์ด๋ป๊ฒ ์๊ฐํ์ธ์?
@nicojs ๋ , ํ์ด๋ฐ์ด ์๋ฒฝํฉ๋๋ค! ์ค๋ ์์นจ์ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ API์ ๋ํ ์ ์์๋ฅผ ์์ฑ ์ค์ ๋๋ค. ์ด ์ ์์ ๊ทํ์๊ฒ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๊ธฐ ํผ๋๋ฐฑ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ฏ๋ก ๊ฑฐ๊ธฐ์ ํ๊ทธ๋ฅผ ์ง์ ํ๊ฒ ์ต๋๋ค.
#1711์์ ์ด ์๊ตฌ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์๋ก์ด API์ ๋ํด ์ข์ ํ ๋ก ์ ํ๊ณ ์์ผ๋ฏ๋ก ์ด ๊ธ์ ๋ง์น๊ฒ ์ต๋๋ค.
๊ณต๊ฐ API์๋ ์์ง๋ง Cli
ํด๋์ค๊ฐ 8.0.0์์์ ๊ฐ์ด ์๋ํ๋๋ก ํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ API๋ก ์ ํํ ์๊ฐ์ ์ฃผ๊ณ ๊ฑฐ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@nicojs ๋ , ํ์ด๋ฐ์ด ์๋ฒฝํฉ๋๋ค! ์ค๋ ์์นจ์ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ API์ ๋ํ ์ ์์๋ฅผ ์์ฑ ์ค์ ๋๋ค. ์ด ์ ์์ ๊ทํ์๊ฒ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๊ธฐ ํผ๋๋ฐฑ์ ๋ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ฏ๋ก ๊ฑฐ๊ธฐ์ ํ๊ทธ๋ฅผ ์ง์ ํ๊ฒ ์ต๋๋ค.