NodeJS, Jest, VSCode debugging
#
๋ฌธ์ ์ํฉ์๊ณ ๋ฆฌ์ฆ ํด๋ ๋ด๋ถ์ solution.js
ํ์ผ์ ์ค๋จ์ ๋ฅผ ๊ฑธ๊ณ ํ๊ฒฝ์ Node.js๋ก ์ค์ ํ๋ฉด ๋๋ฒ๊น
์ด ๋ ๊ฑฐ๋ผ ๊ธฐ๋ํ๋๋ฐ ์๋ฌด ์ผ๋ ์ผ์ด๋์ง ์์๋ค.
๋๋ฒ๊ทธ ์ฝ์์ ๋ณด๋ node๋ก solution.js
๋ฅผ ์คํํ๋๋ฐ, solution
ํจ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๊ฐ ์๊ธฐ ๋๋ฌธ์, ์ ์ธ๋ง ํ๊ณ ๋๋ ๋ฏ ํ๋ค.
๊ทธ๋ฌ๋ฉด solution.test.js
์์ solution
ํจ์๋ฅผ ํธ์ถํ๋, solution.test.js
ํ์ผ์ ์ค๋จ์ ์ ๊ฑธ์ด๋ณด๊ธฐ๋ก ํ๋ค.
test
ํ์ผ์ ์ค๋จ์ ์ ๊ฑธ์๋๋ describe
ํจ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ค.
ReferenceError: describe is not defined NodeJs
Debug single javascript file in "Visual Studio Code"
stackoverflow๋ฅผ ์ฐพ์๋ณด๋ ํ
์คํธ ์ฝ๋๋ฅผ ์คํ์ํฌ ๋ node
๋์ mocha
๋ก ์คํํด์ผํ๋ค๊ณ ํ๋ค. ํ์ฌ jest๋ฅผ ์ฐ๊ณ ์๋๋ฐ jest๋ ๋ง์ฐฌ๊ฐ์ง์ผ ๋ฏ ์ถ์๋ค.
๊ทธ๋ผ ์ด๋ป๊ฒ vscode์ ๋๋ฒ๊ทธ ๋ชจ๋๋ฅผ jest๋ก ์คํ์ํค๋์ง ๊ถ๊ธํ๋ค. stackoverflow์๋ค๋ฅธ ๋ต๋ณ๋ ๋ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ .vscode/launch.json
์ ์ค์ ํด์ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์๋ค.
launch.json
์ program
์ ์คํํ jest
๋ฅผ ๋ฃ๊ณ args
๋ก test
ํ์ผ ๋๋ test
ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋๊ฒจ์ฃผ๋ฉด ๋๋ค.
launch.json
๋ง๋ค๊ธฐ
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "jest ๋๋ฒ๊ทธ", "skipFiles": ["<node_internals>/**"], "program": "${workspaceFolder}/node_modules/jest/bin/jest.js", "args": ["${relativeFileDirname}"] } ]}
VSCode ๋ณ์( ${relativeFileDirname}
) ๋ก ํ์ฌ ์ด๋ ค์๋ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ๊ฐ์ ธ์ฌ ์ ์๋ค. ์ด๊ฑธ args
๋ก ๋๊ธฐ๋ฉด jest ./foo/bar/directory
๊ฐ ์์ฑ๋๋ค.
์ด์ ์ด๋ ค์๋ solution.js
์์ ์ค๋จ์ ์ ์ก๊ณ F5
ํค๋ฅผ ๋๋ฅด๋ฉด solution.js
ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ jest
๋ก ๋๋ฒ๊ทธ ๋ชจ๋๋ก ์คํํ๋ค. solution.js
์ solution.test.js
ํ์ผ์ด ๊ฐ์ ๋๋ ํ ๋ฆฌ์ ์๊ธฐ ๋๋ฌธ์ test
์ฝ๋๊ฐ ๋๋ฒ๊ทธ ๋ชจ๋๋ก ์คํ๋๊ณ , ํ
์คํธ ์ฝ๋์ ์ธํ์ผ๋ก solution
ํจ์๋ฅผ ํธ์ถํ ์ ์๋ค.
๋๋ฒ๊ทธ ์ฝ์์ ๋ณด๋ node
๋ก jest
๋ฅผ ์คํํ๊ณ , args
๋ก ํ์ฌ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋๊ธด๋ค.