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 ๋ก ํ์ฌ ํ์ผ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋๊ธด๋ค.