Jest๋ Windows ์์คํ ์์ ๋๋ฆฝ๋๋ค.
Windows ๋ฐ์คํฌํฑ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ๋.
๋ฒ๊ฐ์ฒ๋ผ ๋นจ๋ผ์ผํฉ๋๋ค.
npx envinfo --preset jest
์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ฌ ๋ฃ์ผ์ญ์์ค.
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
Binaries:
npm: 6.2.0 - C:\Program Files\nodejs\npm.CMD
๋๋ ๋ง์ ๊ฒ์ ์ฝ์๊ณ ๋ชจ๋ Windows ์ฌ์ฉ์์ 100 %๊ฐ ๋๋ด์ผ๋ก ํ ์คํธ ์คํ์ ์ง์ฐ์ํค๋ ์ํฅ์๋ฐ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ชจ๋ Mac ์ฌ์ฉ์์๊ฒ๋ ์์ฒญ๋๊ฒ ๋น ๋ฆ ๋๋ค.
์ด ๋ฌธ์ ์ ์์ธ์ ์ฐพ๊ธฐ์ํ ์ฐ๊ตฌ ๋ ์๋๊ฐ ์์์ต๋๊น? ํ์ฌ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ณต์ฌํ์ฌ ์ฝ๋ ๋ฐ ์์์์ ๋จ์ ํ ์คํธํ๊ณ ์์ต๋๋ค. (์ฆ์ ํ ์คํธ๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์คํํฉ๋๋ค) ๊ทธ๋ฐ ๋ค์ ํ๋ก์ ํธ์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ ๋ฃ์ต๋๋ค.์ด ์์ ์ ์ํํ๋ ๊ฐ์ฅ ์ด์์ ์ธ ๋ฐฉ๋ฒ์ ์๋์ง๋ง ์ข์ํฉ๋๋ค. jest๊ฐ ์ ๊ณตํ๋ API.
๊ด๋ จ : # 6783
์์ ์๋๊ฐ ๋๋ฆฐ๊ฐ์? ์๋๋ฉด ์๊ณ ๋ชจ๋์ธ๊ฐ์? ์์ํ๋ ๋์ watchman
์ค์น๋ฅผ ์๋ํ๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค (https://facebook.github.io/watchman/docs/install.html).
ํ
์คํธ๋ฅผ ์งํํ ๋๋ถํฐ๋ ๊ด์ฐฎ์ ๋ณด์
๋๋ค. (ํธ์ง : ์ค์ ๋ก ํ
์คํธ๋ฅผ ์คํํ ๋๋ ๋๋ฆฝ๋๋ค. 0.5 ์ด์ ์๋๋ก ํ๋์ฉ ํต๊ณผํ๋ ๋ฐ๋ฉด ํ์ค์ 0.05์ฒ๋ผ ๋๊ปด์ง๋๋ค.
ํ
์คํธ ๋น ์ด)
๊ทธ๋ฌ๋ ์์ ๋ฐ / ๋๋ ๋๋ด ํ
์คํธ ์์์ ๋๋ฆฝ๋๋ค (์ฝ 4 ~ 6 ์ด ์ง์ฐ, Mac ์ปดํจํฐ๋ณด๋ค 4 ~ 6 ๋ฐฐ ๋๋ฆผ).
๋๋ ํ์๊พผ์ ์๋ํ๊ณ ๋น์ ์๊ฒ ๋์๊ฐ ๊ฒ์ ๋๋ค
์๋ฅผ ๋ค์ด ndb
์คํํธ ์
์ ์ฌ์ฉํ์ฌ ํ๋กํ์ ์์ฑํ๊ณ ๋๋ฆฐ ๊ฒ์ด ๋ฌด์์ธ์ง ์์๋ผ ์ ์๋ค๋ฉด ํฐ ๋์์ด ๋ ๊ฒ์
๋๋ค ๐
ํ์๊พผ์ด ์ค์น๋ ๊ฒฝ์ฐ์๋ ์ง์ฐ์ ์ฌ์ ํ โโ๋๋ฆฝ๋๋ค.
ndb์์ "jest --verbose"๋ฅผ ์คํํ๋ ํ๋กํ์ผ ๋ง ํ
์คํธ๋ฅผ ์คํํ์ต๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
@pfftdammitchris ๋๋ฆฌ๋ค ๋ ๊ฒ์ ์๊ฒ ๋ [์ ํํ] ์ฌ์ฉ
(ํ๋์ ํ์ผ ๋๋ ์ฌ๋ฌ ํ์ผ)? (์๊ณ ๋ชจ๋ ๋๋ ์๋์ค)? ์์ ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น?
ํ๋์ ํ์ผ ๊ฐ์ ๋ชจ๋ ๋ฌธ์ => # 6783์ ๋ง์ง๋ง ๋๊ธ์ ์ฝ์ผ์ญ์์ค.
๊ฐ์ ๋ชจ๋์ ์ ๋ฌด์ ๊ด๊ณ์์ด ๋จ์ผ ๋ฐ ๋ค์ค ํ์ผ ๋ชจ๋ ๋๋ฆฝ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ ๋๋ง๋ค ํ ์คํธ ์ด๊ธฐํ์ 3 ์ด ์ด์์ ์ง์ฐ์ด ์์ผ๋ฉฐ, ํ ์คํธ๋ฅผ ํ๋์ฉ ์คํํ๋ ์๋๊ฐ 0.3 ์ด โโ๋๋ 0.4 ์ด ๋๋ 0.5 ์ด ๋๋ฆฌ์ง ๋ง mocha / chai์ ๊ฐ์ ๋ค๋ฅธ ํ ์คํธ ์คํ์๋ ์ผ๋ฐ์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ๊ฐ๊ฐ 0.05 ์ด์ฒ๋ผ ๋๊ปด์ง๋๋ค.
๋๋ codesandbox์์ jest๋ฅผ ์ฌ์ฉํ๊ณ ์ด๊ธฐํ / ์คํ ํ ์คํธ์์ ์ฆ์ jest๋ฅผ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ๋๋ฃ๋ค์ด Mac ์ปดํจํฐ์์ ๋๋ด์ ์คํํ๋ ๊ฒ์ ๋ณด์๊ณ ํ์์ฒ๋ผ ์ฆ์ ์คํํฉ๋๋ค. ๋ด๊ฐ ์๋ ํ ๊ทธ๊ฒ์ ๋จ์ง Windows ๊ธฐ๊ณ์ ๋๋ค. ๋๋ ์ง์ฅ์์ Windows ๊ธฐ๊ณ๋ฅผ ์ฌ์ฉํ๊ณ ๋๋ด์ด ๋๋ฆฐ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ผ๋ฉฐ ์ง์์๋ Windows ๊ธฐ๊ณ๋ฅผ ์ฌ์ฉํ๊ณ ๋ฌธ์ ๋ ์ฌ๊ธฐ์์ ๊ณ์๋ฉ๋๋ค.
--runInBand๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๋์ ๋ฐ๋ผ ๋จ์ ํ ์คํธ ์๋๊ฐ ๊ฐ๊ฐ 0.2 ์ด์ฉ ๋ ๋๋ ค์ง ๊ฒ ๊ฐ์ต๋๋ค.
์ค๋ช
--runInBand๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๋์ ๋ฐ๋ผ ๋จ์ ํ ์คํธ ์๋๊ฐ ๊ฐ๊ฐ 0.2 ์ด์ฉ ๋ ๋๋ ค์ง ๊ฒ ๊ฐ์ต๋๋ค.
=> v24๋ก ์๋ํ์
จ์ต๋๊น? v23์์ v24๋ก์ด ์๋๋ฆฌ์ค์์๋ง ์ข์ ๊ฐ์ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
_ rerun
์์ watch
๋ฐ ํ ํ์ผ์ ๋ํด ์คํํ๋ ๊ฒฝ์ฐ์๋ง (์ฒซ ์คํ ์๊ฐ ์๋) _
-> 2/3 ์ด๊ฐ 0.4 / 0.5 ์ด๋ก ๋จ์ด์ง๋๋ค.
ํ์ง๋ง Mac์ ๋นํด ์๋ํ ์ ์ด ์์ต๋๋ค ... ๊ทธ๋์ ์ด์ฉ๋ฉด ๊ทธ๊ฒ์ ์ฌ์ ํ โโ๋์ฉ๋๋ค ... ํ์ฌ์ ๊ฐ์ ์๋ ๋ถ๊ตฌํ๊ณ
๋ฟก๋ฟก
2.์ด ๋ฌธ์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฌธ์ ์๋๋ฆฌ์ค์ ๋ํ ๋๋ด ์๋ ๋ฌธ์ [Mac ๋ Windows].
๋ชจ๋๋ค ์๋
!
๋๋ jest 24์ windows 10์ ๋๋ฆฐ ์๋๋ฅผ ๋์ ํฉ๋๋ค (400 ๊ฐ์ ํ
์คํธ์ 800 ์ด!). ์ด ๋ชจ๋ ์๋๋ฅผ ๋์ด๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ powershell ๋๋ cmd ๋์ wsl์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด์ ๋ด ํ
์คํธ๋ "๋จ์ง"189 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
Windows 10 ๋น๋ 15063 ์์คํ , Core i7 (16GB)์์ ์คํํ๋ ๋ฐ 1 ๋ถ 43 ์ด๊ฐ ๊ฑธ๋ฆฌ๋ 1302 ๊ฐ์ ํ ์คํธ๊ฐ ํฌํจ ๋ 144 ๊ฐ์ ํ ์คํธ ํ์ผ ๋ชจ์์ด ์์ผ๋ฉฐ 32GB์ MAC OS Mojave์์๋ 28 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ์ฐ๋ฆฌ ๊ฐ๋ฐ ํ์ Windows์ Mac๊ฐ์ ๊ท ๋ฑํ๊ฒ ๋ถํ ๋์ด ์์ผ๋ฉฐ ๊ทธ ์ซ์๋ ๋งค์ฐ ๋ฐ๋ณต์ ์ ๋๋ค.
๋ค์์ ๊ฐ๋จํ ํ ์คํธ์ ๋๋ค.
it("works", () => {
expect(1).toEqual(1);
});
๋ด๊ฐ codesandbox์ ๋ฃ์ดํ๊ณ ์ฆ์ ๊ฝค ๋ง์ด ์คํ - https://codesandbox.io/s/4q8l0q52lw
๋ด Windows ์ปดํจํฐ์์๋ 4-5 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
PASS src / index.test.js
v ์๋ (62ms)ํ ์คํธ ์ค์ํธ : 1 ๊ฐ ํต๊ณผ, ์ด 1 ๊ฐ
ํ ์คํธ : 1 ๊ฐ ํต๊ณผ, 1 ๊ฐ ์ด
์ค๋ ์ท : ์ด 0 ๊ฐ
์๊ฐ : 4.158 ์ด
๋ชจ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ์ต๋๋ค.
ํ ์คํธ ์์ฒด๋ 62ms๊ฐ ๊ฑธ๋ ธ์ง ๋ง ๋๋จธ์ง ํ ์คํธ ์ฅ์น๋ 4 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค. Enter ํค๋ฅผ ๋๋ฌ ํ ์คํธ๋ฅผ ๋ค์ ์คํํ๋ฉด ๋์ผํ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
๋ด ์ค์ -
> npx envinfo --preset jest
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
Binaries:
Node: 8.12.0 - C:\Program Files\nodejs\node.EXE
Yarn: 1.10.1 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD
WSL Ubuntu๋ก ์๋ํด ๋ณด์๊ณ ๋์ผํ ๊ฒฐ๊ณผ (4-5 ์ด)๋ฅผ ์ป์์ต๋๋ค-ํด๋น ์ค์ -
System:
OS: Linux 4.4 Ubuntu 18.04.2 LTS (Bionic Beaver)
CPU: (4) x64 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
Binaries:
Node: 8.10.0 - /usr/bin/node
npm: 3.5.2 - /usr/bin/npm
์ ๋ Jest๋ฅผ ์์ํ๋ ์ค์ด๋ฏ๋ก ๋งค์ฐ ๊ฐ๋จํ ํ ์คํธ๋ฅผ ์ํํ๊ณ ์คํํ๋ ๋ฐ 15-20 ์ด๊ฐ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋นจ๋ฆฌ ๋ฌ๋ฆฌ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๊ฐ์ ๊ธฐ์ฐจ๋ฅผ ์๋ ๊ฒฝํฅ์ด ์์ต๋๋ค!
@bburns ๋ ์์ ๋ฌธ์ ๋ฅผ ์ฝ์์ต๋๋ค.
ํํ
์ค ํด์๋์์ micromatch 4๋ก ์๋ํด ๋ณผ ์ ์์ต๋๊น? ์ฐฝ๋ฌธ์์ ๋ ๋์์ง ํ์ธํ์ญ์์ค.
https://github.com/facebook/jest/issues/7963#issuecomment -483985345
์ ๋ ์๋ก์ด MacBook Pro๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. MacOS์ Windows 10์ ๋ชจ๋ ์ฌ์ฉํ๋ ํ์์ด ์์ผ๋ฏ๋ก ๋๋ผ์ด๋ธ์ ํํฐ์ ์ ๋ ๊ฐ ๋ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ๋๋ Windows 10 ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ Tuxera NTFS๋ฅผ ์ฌ์ฉํ๋ ๊ณต์ ์คํ ๋ฆฌ์ง ์ฉ์ ๋๋ค.
์ ๋ ์ค๋ ๋จ์ ํ
์คํธ๋ฅผ ํตํฉํ๋ JavaScript ๊ฐ์๋ฅผ ์ค๋นํ๋ฉด์์ด ์๋ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ค์ ๋ก MacOS์์ Jest๋ฅผ ์คํํ๊ณ ์์ง๋ง ์ฝ๋์ ํ
์คํธ๋ ๊ณต์ NTFS ํํฐ์
์ ์์ต๋๋ค. ๋ชจ๋ ์ ํ๊ตฐ์ด describe.skip
๋ก ํ์๋ ๊ฒฝ์ฐ์๋ Jest๋ ๋จ์ผ ์คํ ๋ชจ๋์ ๊ฐ์ ๋ชจ๋ ๋ชจ๋์์ ์๋ฃํ๋ ๋ฐ 10 ์ด ์ด์ ๊ฑธ๋ฆฝ๋๋ค.
8 ๊ฐ ์ค์ํธ
42 ํ ํ
์คํธ
jest
๋ฅผ mocha
์ chai
๋ฐ๊พธ์๊ณ ์คํ์ ์ฝ 1 ์ด ๋จ์ผ ๋ฐ 10 ๋ฐ๋ฆฌ ์ด ์๊ณ ๋ชจ๋๋ก ๋์ ์์ต๋๋ค.
๋๋ ๋๋ด์ mocha์ chai๋ก ๋ฐ๊พธ๊ณ ์ฝ 1 ์ด์ ์ฑ๊ธ๊ณผ 10 ๋ฐ๋ฆฌ ์ด์ ์๊ณ ๋ชจ๋๋ก ๋์์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋น์ ์ ๋ด ๋ง์ง๋ง ๊ฒ์๋ฌผ์ ์ฝ์ง ์์์ต๋๋ค. ๋น์ ์ mocha/chai
๋ฅผ ํ๋ณดํ๊ณ ์ถ์์ต๋๋ค ... ์ฐ๋ฆฌ ๋ชจ๋๋ ์ด๊ฒ์ ๋ํด ์๊ณ ์์ต๋๋ค ... ์ฐ๋ฆฌ๋ ๋๋ด์ ํ๊ท๋ฅผ ์์ ํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ณ ์์ต๋๋ค. [๋ด ๊ฒ์๋ฌผ์์] ...can you try with micromatch 4...
์ด ์์
์ ๋๊ฑฐ๋ ์ธ๋ชจ์๋ ๋๊ธ์ ์ค๋ ๋์์ ์ ์ธ ์ํค์ญ์์ค. ์ง์ ์ ์ผ๋ก ๋ฏธ์ํ์ง๋ง ์ธ์ ๊ฐ๋ ๊ทธ๊ฒ์ ๋งํ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
@nasreddineskandrani ๋๋ ์๋ํ๊ณ [email protected]์ ํ์ง๋ง, ์ด๋ค ๋์์ด ๋ง์ด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ๊ฐ์ ๋ชจ๋๋ก ์คํํ ๋ ๋ ์ฌ์ ํ ๋งค์ฐ ๋๋ฆฌ๊ฒ ์คํ์ ๋ณผ ์ ์์ต๋๋ค.
@pachumon ์์ ์ฌํญ์ ๋ด๊ฐ ์ดํดํ๋ ํ 24.8.0์ ์์ต๋๋ค.
์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ํน์ ๋ฒ์ ์ ๋ํ jest ์ข ์์ฑ ํ๋๋ฅผ ์ค์ ํด์ผํฉ๋๋ค (์ด๋ก ์ ์ผ๋ก) ์์ ์ฌํญ์ ๊ธฐ๋ณธ์ ์ผ๋ก jest 25 => ๊ฐ๋ฐ์๊ฐ https://github.com/์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์๊ธฐ ์ํด ์ฌ๊ธฐ์์ ์ฝ์ ์
์ข
์์ฑ (๋ง์ดํฌ๋ก ๋งค์น)์ ์์ ์ด ์๋ฃ๋ ๋ฒ์ ์ผ๋ก ์ค์ ํ๋ ค๋ฉด => ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค. ์์ ํ๋ก์ ํธ์์ ์์ ๋ฅผ ์ํํ์ต๋๋ค.
https://github.com/nasreddineskandrani/benchmark_jest/blob/master/jest_24_with_micromatch4/package.json
package.json
์ถ๊ฐํ์ญ์์ค : ( yarn
์๋๋ผ npm
yarn
์ฌ์ฉํด์ผํฉ๋๋ค)
...
"resolutions": {
"micromatch": "^4.0.0"
}
...
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ๊ทธ๋ฆฌ๊ณ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๊ณ
๋ด ํ ์คํธ ์คํ ์๊ฐ๋ 23.6.0์ 2.5 ๋ถ์์ 24.7.1 ๋ฐ 24.8.0์ 15 ๋ถ์ผ๋ก ๋์ด๋ฌ์ต๋๋ค. CI ์๋ฒ๋ ์๋์ฐ๋ฅผ ์คํํ๊ณ ์์ผ๋ฉฐ์ด ์ ๊ทธ๋ ์ด๋๋ก ๋น๋ ์๊ฐ์ด ๋น์ทํ๊ฒ ํฌ๊ฒ ์ฆ๊ฐํ์ต๋๋ค. @nasreddineskandrani ๊ฐ ์์ ์ธ๊ธ ํ๋๋ก micromatch ์ข ์์ฑ ํด๊ฒฐ ์ฌ์ ์๋ฅผ ์๋ํ์ง๋ง ์๋ฌด ์์ฉ์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋์์ด ํ์ํ๋ฉด ์๋ ค์ฃผ์ธ์.
@TomMahle ์ด๊ฒ์ ๋งค์ฐ ๋์ newz์
๋๋ค :( (์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๊ณ ์๋ ํ๊ท๋ ์ด๋ฏธ 23.6์์์์ต๋๋ค)
์ง๊ธ์ ๊ฐ๋จํ '์ํ'ํ๋ก์ ํธ๊ฐ ์ข์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ๋ง์ดํฌ๋ก ๋งค์น ์
๋ฐ์ดํธ ํ.
๋๋ฒ๊น
ํ ์ค์ ๋ฌธ์ ๊ฐ์๋ ํ๋ก์ ํธ๊ฐ ํ์ํฉ๋๋ค. ํ๋ก์ ํธ๊ฐ ๋น๊ณต๊ฐ์
๋๊น? ์๋๋ฉด ๊ณต๊ฐ?
micromatch
@nasreddineskandrani ์ ๋ํ ์ ์์ ๊ฐ์ฌํ์ง๋ง ์์ @TomMahle ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ^4.0.0
๊ณ ์ ํด๋ ์ฑ๋ฅ์ด ํฅ์๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๐ข
ํ์ง๋ง์ด ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๋์์ด ๋ ์์๋ ํ ๊ฐ์ง ํํค ํ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ด Windows ํ์ผ ์์คํ ์์ ๋ง์ดํธ ๋ ๊ธฐ๋ณธ ์ฑ ๋๋ ํ ๋ฆฌ๊ฐ์๋ ๋์ปค ์ปจํ ์ด๋์์ ๊ธฐ๋ณธ Windows ์์คํ ์์ jest๋ฅผ ์คํํ ์ ์์ต๋๋ค. ๋น๊ฐ์ ๋ชจ๋์์ ์คํํ๋ ๊ฒ์ ๋ ์์คํ ์์ ๊ฑฐ์ ๋์ผํ ๋์์ ๋ณด์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฆฌ๋ ์ค VM.
๊ทธ๋ฌ๋ watch ๋ชจ๋์์๋ ์ํฉ์ด ์ฝ๊ฐ ๋ค๋ฆ ๋๋ค. ๊ธฐ๋ณธ ์ฐฝ์ ํญ์ ์์๋๋ก ๋๋ฆฌ๊ฒ ์๋ํ์ง๋ง docker ์ปจํ ์ด๋ ๋ ์ฒ์ ์คํํ ๋๋ง ๋๋ฆฌ๊ฒ ํ ์คํธ๋ฅผ p ๋ฅผ ๋๋ฅด๊ณ ํจํด์ ์ ๋ ฅํ์ฌ) 1 ์ด ์ด๋ด์ ํ ์คํธ๋ฅผ ์คํํฉ๋๋ค (๊ธฐ๋ณธ ์ฐฝ์์ ๋์ผํ ์์ ์ ์ํํ๋ ๋ฐ 3-4 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค). ๋์ปค ์ฌ์ฉ์ ์ ์ผํ ๋จ์ ์ ํ์ผ ๋ณ๊ฒฝ ์ด๋ฒคํธ๊ฐ ๋ด Windows ๋ณผ๋ฅจ์์ ๋์ปค๋ก ์ ํ๋์ง ์๋ ๊ฒ ๊ฐ์ผ๋ฏ๋ก ์๋์ผ๋ก ์ํํ๋ ๋์ Enter ํค ๋ฅผ ๋๋ฌ ํ ์คํธ๋ฅผ ๋ค์ ์คํํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๋น๋ฉดํ ๋ฌธ์ ์ ๊ด๋ จ์ด ์์ต๋๋ค.
์๋ ํ์ธ์. ๋ถํํ๋ ๋ด ํ๋ก์ ํธ๋ ๋น๊ณต๊ฐ์ ๋๋ค. ๋ ์์ ์ฝ๋ ์ํ (Jest config?)์ด ์๊ฑฐ๋ ํต๊ณ๋ฅผ ์ ๊ณต ํ ์ ์๋ค๋ฉด ๊ธฐ๊บผ์ด ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๋ชจ๋ ํ ์คํธ๋ (์๋์ฐ์์๋ง) ๊ทน์ ์ผ๋ก ๋๋ฆฐ ๊ฒ ๊ฐ์์ ํน์ ํ ์คํธ์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ด ๊ฐ์ธ ์น ์ฌ์ดํธ๋ฅผ ์ํดํ๊ณ ์๋ ๋์ปค ์์ ์ ๋ง๋ฌด๋ฆฌํ๊ณ ์๋ค-> (1 ์ฃผ์ผ ํ์) ๋๋ ์ด๊ฒ์ ๋ํด ๋ค์ ์ฌ ๊ฒ์ด๋ค.
๋ฟก๋ฟก
๋๋ ๋น์ ์ด ์ค๋ช
ํ๋ ๋ฌธ์ ์ ํจ๊ป repo github๋ฅผ ๊ฐ๊ธฐ ์ํด ๋ด ํธ์ ์๋ ํ ๊ฒ์
๋๋ค.
dom
๋ชจ๋๋ฅผ ํ์ฑํํ๊ณ ์์ต๋๊น?๋๋ ๋ง์ดํฌ๋ก ๋งค์น์ ๋ฉ์ธํ ์ด๋๋ค์๊ฒ ์ถฉ๋ถํ์ฃผ์๋ฅผ ๊ธฐ์ธ ์๊ธฐ ๋๋ฌธ์์ด ๋ฌธ์ ๋ ์ด๋ฏธ ํด๊ฒฐ ๋ ๊ฒ ๊ฐ๋ค. Windows์์ ๋๋ด ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ์ ํ์ฌ ๋งค์ฐ ๋ถ์พํ ๊ฒฝํ์ ๋๋ค.
๋๋ ๊ทธ ์ดํ๋ก mocha / chai๋ก ์ฎ๊ฒผ์ง๋ง์ด ๋ฌธ์ ๊ฐ ์ฌ์ ํ ํด๊ฒฐ๋๊ณ ์๋ค๋ ๊ฒ์ ๋๋์ต๋๋ค.
์ค๋ช
--runInBand๋ฅผ ์ฌ์ฉํ์ง๋ง ๋๋์ ๋ฐ๋ผ ๋จ์ ํ ์คํธ ์๋๊ฐ ๊ฐ๊ฐ 0.2 ์ด์ฉ ๋ ๋๋ ค์ง ๊ฒ ๊ฐ์ต๋๋ค.
=> v24๋ก ์๋ํ์ จ์ต๋๊น? v23์์ v24๋ก์ด ์๋๋ฆฌ์ค์์๋ง ์ข์ ๊ฐ์ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
_rerun
์์watch
๋ฐ ํ ํ์ผ์ ๋ํด ์คํํ๋ ๊ฒฝ์ฐ์๋ง (์ฒซ ์คํ ์๊ฐ ์๋) _
-> 2/3 ์ด๊ฐ 0.4 / 0.5 ์ด๋ก ๋จ์ด์ง๋๋ค.
ํ์ง๋ง Mac์ ๋นํด ์๋ํ ์ ์ด ์์ต๋๋ค ... ๊ทธ๋์ ์ด์ฉ๋ฉด ๊ทธ๊ฒ์ ์ฌ์ ํ โโ๋์ฉ๋๋ค ... ํ์ฌ์ ๊ฐ์ ์๋ ๋ถ๊ตฌํ๊ณ๋ฟก๋ฟก
- ๋ชจ๋ ๋ฌธ์ ๊ฐ์๋ ์๋๋ฆฌ์ค์ ๋ํด Windows์์ # 7110์ Jest ์๋ ํ๊ท [v22 ๋ v23]๋ก ๊ฐ์ฃผํฉ๋๋ค.
# 6783์ ๊ทธ์ค ํ๋์ ๋๋ค.2.์ด ๋ฌธ์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ ์ ์์ต๋๋ค. ๋ชจ๋ ๋ฌธ์ ์๋๋ฆฌ์ค์ ๋ํ ๋๋ด ์๋ ๋ฌธ์ [Mac ๋ Windows].
๋๋ ๊ฒ์๋ฌผ ๋น์ ๋ ๋ฒ์ ์ ๋ชจ๋ ์๋ํ์ต๋๋ค.
๋ฐฉ๊ธ ๊ฐ๋จํ ๋ฐฐ์ด ํธ์ ํ ์คํธ๋ก ํ๋์ ํ ์คํธ๋ก ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋๋ฐ ์์๋ถํฐ ์๋ฃ๊น์ง 10 ์ด ์ด์ ๊ฑธ๋ ธ์ต๋๋ค. ํ๋ก์ ํธ๋ react / typescript๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ํ ์คํธ ํ์ผ์ react ์ปดํฌ๋ํธ ํ์ผ์ด ์๋๋ผ .js์ ๊ฐ์ ์ผ๋ฐ ํ์ผ์ ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์๊ฐํํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒฝ์ฐ ์๊ฐ์ ์ฐธ์กฐ๋ฅผ ์ํด ์๋ GIF๋ฅผ :
ํ ์คํธ๋ฅผ ์ฒ์ ์คํํ ๋ ํ ์คํธ๊ฐ 9 ์ด๋ก ์ถ์ ๋๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์๋ฃ๋๋ฉด ์๋ฃ ๋ ๋๊น์ง ๋ ๋ฒ์งธ ํ ์คํธ๋ฅผ ๋ฌด์์๋ก ์ฌ ์๋ ํฉ๋๋ค.
์์ gif ์ฌ์ง์ ์ฐ์์ ๋ (์ด๋ฒ์ ๋ ๋ฒ์งธ) ์์ ์๊ฐ์ด ์ฝ๊ฐ ์ค์ด๋ค์๊ณ ๋ ๋ฒ์งธ ์ฌ ์๋๋ฅผ ์ํํ์ง ์์์ต๋๋ค. ๊ทธ๊ฒ์ด ์์๋๋ ๋๋ด ํ๋์ธ์ง ํ์คํ์ง ์์ต๋๋ค.
๋ค์์ ๋ณ๋์ ํ๋ก์ ํธ์์ yarn์ผ๋ก micromatch 4๋ฅผ ์คํํ๋ ์ ์ gif์ ๋๋ค.
Windows 10 ๋ฐ ๋ด ์ปดํจํฐ ์ฌ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ :
AMD FX (tm) -8320 8 ์ฝ์ด ํ๋ก์ธ์ 3.50GHz
16GB ๋จ
x64
SSD
์ฌ๊ธฐ์ ์ ํ๋กํ์ผ ๋ง์ ๊ณต์ ํ๊ฒ ์ต๋๋ค.
๋ช
์ธ์:
๋จ๊ณ :
npx create-react-app my-app --typescript
App.test.tsx
npm test
CPU ํ๋กํ :
CPU-20190801T141211.zip
์ฌ์ํ ๋จ์ผ React ๊ตฌ์ฑ ์์ ๋ฐ ํ ์คํธ๋ฅผ์ํ ๋ชจ๋์ ์์ฒญํ๋ ๋ฐ 15 ์ด๋ง ์์๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๊น?
CPU ํ๋กํ์ผ ๋ง์ ๋ํด ๋ ๋ง์ ๊ฒฝํ์ด์๋ ์ฌ๋์ด ์ดํด๋ณผ ์ ์์ต๋๊น?
112 ํ
์๋์ฐ 10
์ฒซ ์คํ 507 ์ด
๋ ๋ฒ์งธ ์คํ 23 ์ด
๋ฆฌ๋
์ค ์๋ธ ์์คํ
54 ์ด์ ํ๋ฆฌ์คํธ ๋ฐ
๋ ๋ฒ์งธ ์คํ 29 ์ด
85 ๋ฒ์ ํ
์คํธ
์๋์ฐ 10
์ฒซ ์คํ 44 ์ด
๋ ๋ฒ์งธ ์คํ 15 ์ด
๋ฆฌ๋
์ค ์๋ธ ์์คํ
์ฒซ ์คํ 26 ์ด
๋ ๋ฒ์งธ ์คํ 15 ์ด
Kepro์ด ๊ฒฐ๊ณผ๋ micromatch 4์ ํจ๊ป ์์ต๋๊น?
์ฌ๊ธฐ์ 1 ๋ฐฑ๋ง ๊ฐ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ฒ๋ณด๋ค ์ง์ ์ฑํ
์ ์ ํธํฉ๋๋ค. ๋์ผํ ์ฃผ์ ์ ๊ด๋ จ๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ด ์ ๋ง ์ง์ฅ์ด๋๊ณ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ฐ์
ํ ์ ์์ต๋๋ค. https://gitter.im/wearefrontend/jest-slow-windows
์ง๊ธํ๊ณ ์์ด์ ...
Gitter๋ ๋ด ํ์ฌ VPN์ ํตํด ์ฐจ๋จ๋ฉ๋๋ค. ์ฌ๋์ค๋ฌ์ด ์ฌ๋๋ค์ด ์ฌ๊ธฐ์ ์๋ฏธ์๋ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ ํ ์ ์๋ค๋ฉด ๋๋ผ์ด ์ผ์ด ๋ ๊ฒ์ ๋๋ค. <3
์ฌ์ ํ ์ง์์ ์ฐ๊ฒฐํ์ฌ ์คํ ์์ค๋ฅผ ํ ์ ์์ต๋๋ค.
์ถ์ dota ๊ฒ์์ ๋๊ธฐ์ด์ ๋ ๋ง์ ์๊ฐ์ด ์์๋ฉ๋๋ค. ์ด์ gitter๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.)
ํ์ฌ ์์น : nodejs / node # 28946
ํธ์ ๋ด์ ๊ฐ๊ธฐ ๋๋ ์๋ก์ด ๋งฅ๋ถ์ ์ฃผ๋ฌธ ํ์ผ๋ฏ๋ก ๊ทธ๊ฒ์ด ๋์ฐฉํ ๋๊น์ง ์คํ ์์ค ์์ ์์ ๋ฒ์ด๋ ๊ฒ์ ๋๋ค. ๋๋ ์ฌ๊ฐ ์๊ฐ์ ๋ด ์๋ฑํ Windows ์์์์ ์ค์ ๋ก ์์ ํ๋ ๊ฒ์ ๊ฑฐ๋ถํฉ๋๋ค.
๋ฌธ์ ๊ฐ ๋ ธ๋ / C ++ ์์ญ์ผ๋ก ์ด๋ ํ ๊ฒ ๊ฐ์ต๋๋ค.์ด ์์ญ์ ๋ด ์์ ์ง๋๋ฅผ ์ฝ๊ฐ ๋ฒ์ด๋ ๊ฒ์ ๋๋ค.
์๋ ํ์ธ์ ์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ํ ์คํธ๋ฅผ ์์ํ๋ ๊ฒฝ์ฐ --runInBand๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ํ ์คํธ๋ฅผ ์์ํ๋ ๋ฐ ์ฌ์ ํ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ๋ง ๋ค์ ํ ์คํธ๋ ๋น ๋ฆ ๋๋ค.
๋ด ํ๋ก์ ํธ๋ ๋ชจ๋ ํ
์คํธ๋ฅผ ์คํํ๋ ๋ฐ 21.803 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
์ด์ --runInBand๋ฅผ ์ฌ์ฉํ๋ฉด 7.412 ์ด๋ง ๊ฑธ๋ฆฝ๋๋ค.
--runInBand๋ ๊ทธ๋ฅ ๋ ๋๋ฆฌ๊ฒ ๋ง๋ญ๋๋ค. 1200 ํ
์คํธ. runinBand 70/50 ์ด์์ด. --runInBand๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ฒ์งธ ์คํ์์ ๊ธฐ๊ปํด์ผ 90 ์ด
๋ฆฌ๋
์ค์์๋ 5-8 ๋ฐฐ ๋ ๋น ๋ฆ
๊ทธ๋ฐ ๋ค์ --maxWorkers = 4๋ฅผ ์๋ํ์ญ์์ค.
@ cino893 , ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค :) ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋ ์์ ์ ์ฐพ์ผ์ญ์์ค.
๊ทธ๊ฒ์ ๋ํ ์์์ ์๋์? ๊ทธ ๋ฒ๊ทธ๋ก ์ธํด ๋ฒ์ 21์ ์์์ต๋๋ค. v22๋ ๋๋ฆฌ๊ณ v23์ ๋ ๋๋ฆฝ๋๋ค.
์ฐ์ ์์๊ฐ ๋์ ๋ฒ๊ทธ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๊น?
๋ด๊ฐ ์ผํ๋ ๊ณณ์์๋ OS๋ฅผ ์ ํํ๊ฑฐ๋ Windows ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ Ubuntu๋ฅผ ์ค์นํ ์์ ๊ฐ ์์ต๋๋ค.
@gombek v25 ๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น? Jest ํ์ ์ ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ ๋ง์ด ๊ฐ์ ํ์ต๋๋ค.
์๋ ํ์ธ์,์ด ํ ๋ก ์ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค. Jest๋ ํธ์คํธ ์์คํ (Windows)์ ๋ณผ๋ฅจ์ ํตํด ๊ณต์ ๋ ์์ค ์ฝ๋์ ํ ์คํธ๊ฐ์๋ Docker ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ๋ ๋๋ ๋งค์ฐ ๋๋ฆฝ๋๋ค.
์ด ์๋ ์ ํ๋ Windows๊ฐ ์ ๋์ค ์์คํ ๊ณผ ๋น๊ตํ์ฌ ํ์ผ ํธ๋ค์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ฐจ์ด๋ก ์ธํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ ๋์ค์์ ํ๋ก์ธ์ค์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํด๋น ํ์ผ์ ์ฝ๋ ๊ฒ์ ์ฐจ๋จํ์ง ์๋ ํ์ผ ํธ๋ค์ด ์ด๋ ค์๋ ๊ฒฝ์ฐ. Windows์์ ํ์ผ ํธ๋ค์ ๋ณด์ ํ ํ๋ก์ธ์ค๋ ํธ๋ค์ ํด์ ํ๋ ํ ํด๋น ํ์ผ์ ์์ ํฉ๋๋ค. ํ์ผ ์ฝ๊ธฐ ๋ ผ๋ฆฌ, ํนํ ํ์ผ ํธ๋ค์ด ๋ฆด๋ฆฌ์ค๋๋์๊ธฐ์ ๋ฐฉ๋ฒ์ ๋ํด Jest ์ฝ๋๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. ์ ์๋ํ๋ ํ๋ก๊ทธ๋จ์ ์์ ์ด ์๋ฃ๋ ์งํ ํ์ผ ํธ๋ค์ ํด์ ํด์ผํฉ๋๋ค. Jest์ ๊ฐ์ ํ ์คํธ ์คํ๊ธฐ๋ ์ด์จ๋ ์ค๋ซ๋์ ํ์ผ ํธ๋ค์ ์ ์งํ ์ด์ ๊ฐ ์์ด์ผํฉ๋๋ค.
@gombek v25 ๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น? Jest ํ์ ์ ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ ๋ง์ด ๊ฐ์ ํ์ต๋๋ค.
Windows์์ Jest v25๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ฌ์ ํ ๋๋ฆฝ๋๋ค.
@pfftdammitchris ์ ๋ Mac + Windows์์ ๊ฝค ๋ณต์กํ ํ ์คํธ ์ค์ํธ๋ฅผ ๋น๊ต
ํ๋...
Windows์์ ํนํ์ฃผ์ํด์ผ ํ ์ฌํญ ์ค ํ๋๋ Carbon Black (๋๋ ๊ธฐํ ์ค์๊ฐ ํ์ผ ๊ฐ์ ์ํํธ์จ์ด)๊ณผ ๊ฐ์ ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ / ํ์ผ ๊ฐ์์์ ๊ฐ์ ์นจ์ ์ปค๋ ์์ค ํ๋ก๊ทธ๋จ์ ๋๋ค. ์ด์ ๊ฐ์ ์คํ์ด ์์ผ๋ฉด Jest๋ฅผ ์คํํ ๋ ์์ฒญ๋ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ์์ญ ๋ถ์ด ๊ฑธ๋ฆฐ๋ค๋ ์ด์ผ๊ธฐ์ ๋๋ค.
์ ๋ ์๋ ์ ๊ฐ์ ํ ์คํธ ์ค์ํธ๊ฐ Macbook Pro์์ 30 ์ด, Windows ๋ฉํฑ์์ 20 ๋ถ์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ด๋ฌํ ํ์ผ ๊ฐ์ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ํ์ฌ์์ ์ผํ์ต๋๋ค.
์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ํ์ผ ํธ๋ค๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ Jest๊ฐ node.js ํ์ผ ์์คํ API ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ถ์ธก ํ ์ ์์ต๋๋ค.
๋๋ ์ฝ 20 ๊ฐ์ ํ ์คํธ๋ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๊ธฐ ์คํ์์ ๋ ๊ฐ์ง ๋ชจ๋์์ ๋๋ด์ผ๋ก ํ์ด๋ฐ์ ์ก์ ๋ค์ Enter ํค๋ฅผ ๋๋ฌ ๋ค์ ์คํํ์ต๋๋ค.
Windows์์๋ ๋ ๋ฒ ๋ชจ๋ ์ฝ 15 ์ด๊ฐ ๊ฑธ๋ ธ์ง ๋ง Linux์์๋ ์ฒ์ ์คํ์ ์ฝ 5.3 ์ด, ํ์ ์คํ์์๋ 2.3 ์ด๊ฐ ์์๋์์ต๋๋ค.
-t = "GARBAGE"๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ ์คํธ๋ฅผ ๊ฑด๋ ๋ฐ๋๋กํ์ต๋๋ค. ๋ฆฌ๋ ์ค๋ 1.5 ์ด๊ฐ ๊ฑธ๋ ธ์ง ๋ง ์ฐฝ์ ์ฌ์ ํ โโ13 ์ด๊ฐ ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ์ ์ค์ ํ ์คํธ ์คํ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค!
๋ ์ปดํจํฐ ๋ชจ๋ ์ต์ ๋ฒ์ ์ node์ jest๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ Linux๋ ์ค์ ๋ก hyper-v๋ฅผ ์ฌ์ฉํ์ฌ Windows ๋ด๋ถ์์ ์คํ๋๋ VM์ด๋ฏ๋ก ๋ค๋ฅธ ๊ฒ๋ค์ด ๋์ผํ๋ฉด Windows๊ฐ ๋ ๋น ๋ฅผ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
๋๋ ์ฝ 20 ๊ฐ์ ํ ์คํธ๋ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๊ธฐ ์คํ์์ ๋ ๊ฐ์ง ๋ชจ๋์์ ๋๋ด์ผ๋ก ํ์ด๋ฐ์ ์ก์ ๋ค์ Enter ํค๋ฅผ ๋๋ฌ ๋ค์ ์คํํ์ต๋๋ค.
Windows์์๋ ๋ ๋ฒ ๋ชจ๋ ์ฝ 15 ์ด๊ฐ ๊ฑธ๋ ธ์ง ๋ง Linux์์๋ ์ฒ์ ์คํ์ ์ฝ 5.3 ์ด, ํ์ ์คํ์์๋ 2.3 ์ด๊ฐ ์์๋์์ต๋๋ค.
-t = "GARBAGE"๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ ์คํธ๋ฅผ ๊ฑด๋ ๋ฐ๋๋กํ์ต๋๋ค. ๋ฆฌ๋ ์ค๋ 1.5 ์ด๊ฐ ๊ฑธ๋ ธ์ง ๋ง ์ฐฝ์ ์ฌ์ ํ โโ13 ์ด๊ฐ ๊ฑธ๋ ธ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ์ ์ค์ ํ ์คํธ ์คํ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค!
๋ ์ปดํจํฐ ๋ชจ๋ ์ต์ ๋ฒ์ ์ node์ jest๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ Linux๋ ์ค์ ๋ก hyper-v๋ฅผ ์ฌ์ฉํ์ฌ Windows ๋ด๋ถ์์ ์คํ๋๋ VM์ด๋ฏ๋ก ๋ค๋ฅธ ๊ฒ๋ค์ด ๋์ผํ๋ฉด Windows๊ฐ ๋ ๋น ๋ฅผ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
์. Windows์์ Linux VM์ ์์ค ์ฝ๋๋ฅผ ๋ง์ดํธํ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ฉด Windows ์์์ฒ๋ผ ๋๋ ค์ง๋๋ค. ์ด๊ฒ์ ์์ ์ธ๊ธ ํ ๊ฒ์ฒ๋ผ Jest์ ํ์ผ ์ฒ๋ฆฌ ๋ก์ง์ ๋ฌธ์ ๊ฐ ์์์ ๊ฐ๋ ฅํ๊ฒ ์์ํฉ๋๋ค.
์. Windows์์ Linux VM์ ์์ค ์ฝ๋๋ฅผ ๋ง์ดํธํ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ฉด Windows ์์์ฒ๋ผ ๋๋ ค์ง๋๋ค. ์ด๊ฒ์ ์์ ์ธ๊ธ ํ ๊ฒ์ฒ๋ผ Jest์ ํ์ผ ์ฒ๋ฆฌ ๋ก์ง์ ๋ฌธ์ ๊ฐ ์์์ ๊ฐ๋ ฅํ๊ฒ ์์ํฉ๋๋ค.
ํ ์คํธ๊ฐ ์คํ๋๋ ๋์ CPU๋ ๋์ง๋ง ๋์คํฌ ์ฌ์ฉ๋์ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ํ์ผ ํธ๋ค์ ๋ํ ์ฐจ๋จ๊ณผ ๊ด๋ จ์ด ์์์ผ๋ฏ๋ก CPU๊ฐ ๋ฎ์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค (์กฐ์์ด ํธ๋ค์ด ํด์ ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ์ดํธํ ๋ฃจํ์ ์์ง ์๋ ํ)
ํ์ผ ๊ฐ์์์ ๋ํ hevans90์ ๋๊ธ์ ๋ดค์ต๋๋ค. ํ์ฌ ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ด ์ค์น๋์ด ์์ง ์๊ฑฐ๋ ์ด์ ์ ์ฌํ ๊ธฐ๋ฅ์ด ์ค์น๋์ด ์์ง ์์ง๋ง Windows ๊ธฐ๋ณธ ์ ๊ณต ์ค์๊ฐ ๋ณดํธ๋ฅผ ๋นํ์ฑํํด๋ ๋์ ๋๋ ์ฐจ์ด๋ ์์ต๋๋ค.
์๋ํ๊ณ ๋๋ฒ๊น ํ ์๊ฐ์ด์๋ ์ฌ๋์๊ฒ ๋์์ด ๋์์ผ๋ฉดํฉ๋๋ค.
๊ทธ๋์ ์ค๋ Windows Defender๊ฐ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
์์ ์๋ ๋ง์ ์์ธ๊ฐ ์์์ง๋ง ๋ ๋น ๋ฅธ ๋
ธํธ๋ถ์ ๋ฐ์์ ๋ jest๊ฐ ๋จ์ผ ํ์ผ์ ์คํํ๋ ๋ฐ 10 ๋ถ ์ด์ ๊ฑธ๋ฆฐ ์ด์ ๋ฅผ ํ์ ์ ์ ์์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ์์ธ๋ฅผ ๊ธฐ์ตํ์ต๋๋ค.
์ด๋ค ์ ์ธ๊ฐ ์ฐจ์ด๋ฅผ ๋ง๋๋์ง ์ ํํ ์ ์๋ ์์ง๋ง ๋ฌ๋๋ 10 ๋ถ์ ๋์ง ์๊ณ 15 ์ด๋ก ์ค์์ต๋๋ค.
๊ด๋ จ ์ ์ธ ํญ๋ชฉ์ด์๋ ์์ ์ ์ฐพ์์ต๋๋ค (๊ฐ๋ ฅํ์ง๋ง)
https://gist.github.com/darvell/edbc758b11ea4dcd7226b7c9f1821196
ํ์ผ ํ์ฅ์ .ts .js .spec.ts .spec.js .tsx
๋ ์ถ๊ฐํ์ต๋๋ค.
์ด๋ค ์ ์ธ๊ฐ ์ฐจ์ด๋ฅผ ๋ง๋๋์ง ์ ํํ ์ ์๋ ์์ง๋ง ๋ฌ๋๋ 10 ๋ถ์ ๋์ง ์๊ณ 15 ์ด๋ก ์ค์์ต๋๋ค.
ํ ๋๋ ๋ฐฉ๊ธ ์๋ํ์ง๋ง ๋ด ๊ฒ๊ณผ ์๋ฌด๋ฐ ์ฐจ์ด๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์จ๋ ํญ์ ์์ธ๊ฐ ์์ต๋๋ค. ์ค์ ๋ก IntelliJ Idea๋ ์์ ๊ณต๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ์ ์ธ์ ์๋์ผ๋ก ๋ฐฐ์นํ๋๋ก ์ ์ํ๊ณ ํ์ฉํ๋ ๊ฒฝ์ฐ์ด๋ฅผ ์ํํฉ๋๋ค (ํ์ํ ๊ฒฝ์ฐ). ๋ฐ๋ผ์ ์ ๊ฒฝ์ฐ์๋ ์๋ ์ ํ๊ฐ Windows Defender ๋๋ ๋ค๋ฅธ ๋ฐ์ด๋ฌ์ค ์ค์บ๋๋ก ์ธํ ๊ฒ์ด ์๋๋๋ค.
์ฑ๋ฅ ์ฐจ์ด๋ Mac์ ๋นํด 5 ~ 10 ๋ฐฐ์ ๋๋ค. PC๋ ๊ฐ๋ ฅํ ๋ฐ์คํฌํฑ ์ปดํจํฐ์ ๋๋ค (์ฝ๊ธฐ : ๋งฅ๋ถ๋ณด๋ค ํจ์ฌ ๋น ๋ฆ). ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅด๋ฉฐ Jest ๋ง์ด ๋ฌธ์ ๋ก ๊ณ ํต ๋ฐ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? ... ๋๋ ๋๊ฐ์ ์ผ์ ๊ฒช๊ณ ์๋๋ฐ, ๊ฐ ํ ์คํธ๋ ์ค์ ํ๊ณ ๋ก๋ํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ๋ง ์ฒซ ๋ฒ์งธ ํ ์คํธ๊ฐ๋ก๋ ๋ ํ์๋ ์ ์์ ์ธ ์๋๋ก ์คํ๋ฉ๋๋ค .....
๋ํ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋จ์ผ hello world ํ ์คํธ๊ฐ ํฌํจ ๋ ๋จ์ผ ํ ์คํธ ํ์ผ์ด๋ฉฐ ์์ํ๋ ๋ฐ 15 ์ด๊ฐ ๊ฑธ๋ฆฌ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ 12 ์ด๊ฐ ๋ ๊ฑธ๋ฆฝ๋๋ค.
๐ ๋๋ ๊ทธ๋ค์ด jest์ ํจ๊ป typescript๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ์์ํ๋ ๋ช ๊ฐ์ง ๋ต๋ณ์ ๋ด ๋๋ค-์ด๊ฒ์ ์ดํด๋ณผ ๊ฐ์น๊ฐ์์ ์ ์์ต๋๋ค (ts-jest๋ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ) : https://github.com/kulshekhar/ts-jest/issues/ 908 # issuecomment -484043250
์ ์๊ฒ ๋ณํ๋ (์บ์์์ด) ๋๋ด์ด ์์๋ ๋๊น์ง 30 ๋ถ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์์ ๋ถ๊ณผ ๋ช ์ด๋ก ์งํ๋์์ต๋๋ค.
isolatedModules ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ฉด ์ฌ์ ํ์ผ์ ๋ํ ์ ํ ๊ฒ์ฌ๊ฐ ์ํ๋์ง ์์ผ๋ฉฐ ์ผ๋ถ ๊ธฐ๋ฅ์ด ์์ค๋ฉ๋๋ค. https://github.com/kulshekhar/ts-jest/blob/master/docs/user/ config / isolatedModules.md
๊ทํ์ ๋ฌธ์ ๊ฐ ๋๋ด์ธ์ง ํ์ธํ๋ ๋ฐ ์ ์ฉ ํ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ง ๊ฒ์ํฉ๋๋ค.
๐ ๋๋ ๊ทธ๋ค์ด jest์ ํจ๊ป typescript๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ์์ํ๋ ๋ช ๊ฐ์ง ๋ต๋ณ์ ๋ด ๋๋ค .
์ ์๊ฒ ๋ณํ๋ (์บ์์์ด) ๋๋ด์ด ์์๋ ๋๊น์ง 30 ๋ถ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์์ ๋ถ๊ณผ ๋ช ์ด๋ก ์งํ๋์์ต๋๋ค.
isolatedModules ํ๋๊ทธ๋ฅผ ์ค์ ํ๋ฉด ์ฌ์ ํ์ผ์ ๋ํ ์ ํ ๊ฒ์ฌ๊ฐ ์ํ๋์ง ์์ผ๋ฉฐ ์ผ๋ถ ๊ธฐ๋ฅ์ด ์์ค๋ฉ๋๋ค. https://github.com/kulshekhar/ts-jest/blob/master/docs/user/ config / isolatedModules.md
๊ทํ์ ๋ฌธ์ ๊ฐ ๋๋ด์ธ์ง ํ์ธํ๋ ๋ฐ ์ ์ฉ ํ ์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ง ๊ฒ์ํฉ๋๋ค.
์ฌ๊ธฐ์ ์์ํ JavaScript. ์ด ๋ฌธ์ ๋ TypeScript์ ๊ด๋ จ์ด ์์ต๋๋ค.
์ฐธ๊ณ : https://github.com/kulshekhar/ts-jest/pull/1549 ๋ ts-jest์ ์ํ ๋ฒ์ ์ ๋๋ค (์๋ง ์ค๋). ts-jest๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ์ํ ๋ฒ์ ์ ํ ์คํธํ๊ณ https://github.com/kulshekhar/ts-jest/issues/1115์ ๋ํ ์๊ฒฌ์ ๋ณด๋ด์ฃผ์ธ์.
๋ํ์ด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋จ์ผ hello world ํ ์คํธ๊ฐ ํฌํจ ๋ ๋จ์ผ ํ ์คํธ ํ์ผ์ด๋ฉฐ ์์ํ๋ ๋ฐ 15 ์ด๊ฐ ๊ฑธ๋ฆฌ๊ณ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ 12 ์ด๊ฐ ๋ ๊ฑธ๋ฆฝ๋๋ค.
Mac์์ ๋์ผํ ํ ์คํธ๋ฅผ ์คํํ์ต๋๋ค. ์์ํ๋ ๋ฐ ์ฝ 1.5 ์ด, ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ 1 ์ด ๋ฏธ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.
์ฌ๊ธฐ TS๊ฐ ์๋ JS๋ ์ฌ์ฉํฉ๋๋ค.
Jest์ ํจ๊ป ์์ํ JavaScript๋ ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ธํ
์ 10 ์ธ๋ ํ๋ก์ธ์๋ฅผ ํ์ฌ ํ ๊ฐ๋ ฅํ ์ฟผ๋ ์ฝ์ด ๋
ธํธ๋ถ์ด ์๊ณ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๋งค์ฐ ๋น ๋ฅด์ง ๋ง ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ํ
์คํธ๋ฅผ ์คํํ๋ ๋ฐ Windows์ Linux์์ [email protected]
๊ฐ 2-3 ๋ฐฐ ๋ ๋ง์ด ๊ฑธ๋ฆฝ๋๋ค.
๋์ผํ ๋ฌธ์ , ๋ด ํ ์คํธ๊ฐ Windows์์ ์คํ๋๋ ๋ฐ ์ฝ 60 ์ด๊ฐ ๊ฑธ๋ฆฌ๋ฉฐ ์ฒ์ 45 ์ด ๋์ UI๊ฐ ํ์๋์ง ์์ต๋๋ค. ๋ด ๋ฆฌ๋ ์ค ์ปดํจํฐ์์ ๋๊ฐ์ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ๊ณ ์๋ฃํ๋ ๋ฐ 8 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
์์ @Cellule ์ ๋๊ธ์ ์ฝ 15 ์ด๊น์ง ๊ทน์ ์ผ๋ก ๋นจ๋ผ์ก์ต๋๋ค.
@ryanrapini ๋ @Cellule ์ ์กฐ์ธ์ ๋ฐ๋์ง๋ง ( Windows UI > Virus and Threat Protection > Manage Settings > Add Exclusions
ํต๊ณผํ์ต๋๋ค) ์ผ๋ถ ํ
์คํธ๊ฐ 13 ์ด์์ 6 ์ด๋ก, ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ฐ์ด๋๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ๊ฐ์ฌ!
์น ์ฌ์ดํธ์ FAQ ํ์ด์ง์์ Windows Defender (๋๋ ์ผ๋ฐ์ ์ผ๋ก AV?)๋ฅผ ์ธ๊ธํ๋ ์น์ ์ ์ ๊ณตํ๊ณ ์ถ์ ์ฌ๋์ด ์์ต๋๊น? https://jestjs.io/docs/en/troubleshooting
ts-jest์ ํจ๊ป isolatedModules: true
์ฌ์ฉํ๋ฉด ์ฝ๋ ์คํํธ โโ์
(~ 10 ๋ถ => 15 ์ด)์ ํฐ ์ฐจ์ด๊ฐ ์์์ ํ์ธํ ์ ์์ต๋๋ค.
๋๋ jest 25๋ก ์
๋ฐ์ดํธํ๊ธฐ ์ ์ # 9457์ด ํด๊ฒฐ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ํ์์ ๊ฐ์ ์ฌํญ์ ํ
์คํธํ์ง ์์์ต๋๋ค.
์๋ ํ์ธ์,
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค ...
ํ์ฌ ๋ช ๊ฐ์ง ํ
์คํธ๊ฐ์๋ ๋งค์ฐ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
Wes Bo์ "Advanced React Course"์์ ๊ฐ์ ธ์จ ๊ฒ์
๋๋ค.
๊ทธ๋ Mac์์ ์คํํ๊ณ ์ปดํจํฐ์์ ์ฆ๊ฐ์ ์ธ ๋ต๋ณ์ ์ป์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ฅผ ์ํด :
ํ ์คํธ ๋ชจ์ : 2 ๊ฑด ๊ฑด๋ ๋ฐ๊ณ 15 ๊ฑด ํต๊ณผ, ์ด 17 ๊ฑด ์ค 15 ๊ฑด
ํ ์คํธ : 6 ๊ฑด ๊ฑด๋ ๋ฐ๊ธฐ, 37 ๊ฑด ํต๊ณผ, ์ด 43 ๊ฑด
์ค๋ ์ท : 18 ๊ฐ ํต๊ณผ, ์ด 18 ๊ฐ
์๊ฐ : 5.869 ์ด
๋ชจ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ์ต๋๋ค.
isolatedModules: true
๋ด ๊ฒฝ์ฐ์๋ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ์ฌ์ ํ 5-6 ์ด ์ ๋์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ต์
์ผ๋ก ํ
์คํธ๋ฅผ ์์ํ๋ฉด 9 ~ 10 ์ด ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.
Defender Exceptions์ ๋ด dev ํด๋๋ฅผ ์ถ๊ฐํ๋ฉด ์๋ฌด๊ฒ๋ํ์ง ์์์ต๋๋ค.
ํ ์คํธ ๋ชจ์ : 2 ๊ฑด ๊ฑด๋ ๋ฐ๊ณ 15 ๊ฑด ํต๊ณผ, ์ด 17 ๊ฑด ์ค 15 ๊ฑด
ํ ์คํธ : 6 ๊ฑด ๊ฑด๋ ๋ฐ๊ธฐ, 37 ๊ฑด ํต๊ณผ, ์ด 43 ๊ฑด
์ค๋ ์ท : 18 ๊ฐ ํต๊ณผ, ์ด 18 ๊ฐ
์๊ฐ : 5.563 ์ด
๋ชจ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ์ต๋๋ค.
Windows์ ์ข์ ์ต์
์ด ์์ต๋๊น?
wsl2๋ก ๊ฐ์ผํ๋์?
์๋ ํ์ธ์,
์ฌ๊ธฐ์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ํด๊ฒฐ์ฑ ์ด ์์ต๋๋ค ...
ํ์ฌ ๋ช ๊ฐ์ง ํ ์คํธ๊ฐ์๋ ๋งค์ฐ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค.
Wes Bo์ "Advanced React Course"์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค.
๊ทธ๋ Mac์์ ์คํํ๊ณ ์ปดํจํฐ์์ ์ฆ๊ฐ์ ์ธ ๋ต๋ณ์ ์ป์ต๋๋ค.๊ทธ๋ฆฌ๊ณ ๋๋ฅผ ์ํด :
ํ ์คํธ ๋ชจ์ : 2 ๊ฑด ๊ฑด๋ ๋ฐ๊ณ 15 ๊ฑด ํต๊ณผ, ์ด 17 ๊ฑด ์ค 15 ๊ฑด
ํ ์คํธ : 6 ๊ฑด ๊ฑด๋ ๋ฐ๊ธฐ, 37 ๊ฑด ํต๊ณผ, ์ด 43 ๊ฑด
์ค๋ ์ท : 18 ๊ฐ ํต๊ณผ, ์ด 18 ๊ฐ
์๊ฐ : 5.869 ์ด
๋ชจ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ์ต๋๋ค.
isolatedModules: true
๋ด ๊ฒฝ์ฐ์๋ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ง๋ง ์ฌ์ ํ 5-6 ์ด ์ ๋์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ์ต์ ์ผ๋ก ํ ์คํธ๋ฅผ ์์ํ๋ฉด 9 ~ 10 ์ด ์ ๋ ๊ฑธ๋ฆฝ๋๋ค.Defender Exceptions์ ๋ด dev ํด๋๋ฅผ ์ถ๊ฐํ๋ฉด ์๋ฌด๊ฒ๋ํ์ง ์์์ต๋๋ค.
ํ ์คํธ ๋ชจ์ : 2 ๊ฑด ๊ฑด๋ ๋ฐ๊ณ 15 ๊ฑด ํต๊ณผ, ์ด 17 ๊ฑด ์ค 15 ๊ฑด
ํ ์คํธ : 6 ๊ฑด ๊ฑด๋ ๋ฐ๊ธฐ, 37 ๊ฑด ํต๊ณผ, ์ด 43 ๊ฑด
์ค๋ ์ท : 18 ๊ฐ ํต๊ณผ, ์ด 18 ๊ฐ
์๊ฐ : 5.563 ์ด
๋ชจ๋ ํ ์คํธ ์ค์ํธ๋ฅผ ์คํํ์ต๋๋ค.Windows์ ์ข์ ์ต์ ์ด ์์ต๋๊น?
wsl2๋ก ๊ฐ์ผํ๋์?
๋ด ์๋ฃจ์ ์ ์ ์ฉํ๊ณ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์๋ ค ์ฃผ์ค ์ ์์ต๋๊น? (์ค์ ๋ก Cellule์ ์๋ฃจ์ ์ด์ง๋ง ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋์ ๋ฉ๋ด๋ฅผ ํตํด ์ํํ์ต๋๋ค)
๋ด ์๋ฃจ์ ์ ์ ์ฉํ๊ณ ์ด๋ค ์ผ์ด ๋ฐ์ํ๋์ง ์๋ ค ์ฃผ์ค ์ ์์ต๋๊น? (์ค์ ๋ก Cellule์ ์๋ฃจ์ ์ด์ง๋ง ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๋์ ๋ฉ๋ด๋ฅผ ํตํด ์ํํ์ต๋๋ค)
๋ด ๋ฉ์์ง์์ ๋งํ๋ฏ์ด ๋๋ ์ด๋ฏธ ๊ทธ๊ฒ์ํ์ต๋๋ค :)
๋ฉ๋ด๋ฅผ ํตํด ๋น์ ์ด ํ ์ผ์ ๋ฐ๋์ต๋๋ค.
Windows์์๋์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ํ ์คํธ ์์ฒด๋ 1 ์ด ๋ฏธ๋ง์ผ๋ก ์คํ๋์ง๋ง ์ ์ฒด ์ค์ ์ ์คํํ๋ ๋ฐ 15 ์ด ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. v24 ๋ฐ v26์์ ์๋ํ์ง๋ง ์ค์ ๋ก v26์์๋ ์กฐ๊ธ ๋๋ฆฝ๋๋ค.
๋ค์ ์ค ํ๋์ ์ด์ด ์์์ต๋๋ค (์คํ ์๊ฐ์ด ํฅ์๋์ง ์์์ต๋๋ค).
--runInBand
maxWorkers
Virus and Threat Protection
.ts .js .spec.ts .spec.js .tsx
์ ์ธ ์ถ๊ฐ๋ฐ๋๋ผ ์๋ฐ โโ์คํฌ๋ฆฝํธ์ ์๋ก์ด ํ์ดํ ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ์ ํจ๊ป Windows์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ชจ์นด๋ฅผ ์ฌ์ฉํ์ฌ 10ms ๋ฏธ๋ง์ผ๋ก ์คํ๋๋ 9 ๊ฐ์ ๋จ์ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ 2 โโ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
๋ฏธ์น ์ง์ด์ผ!
๋จ์ํ jest๋ฅผ ์ ์ธ๊ณ์ ์ผ๋ก ์ค์นํ๋ฉด ์ด์ ์ ํํ ๋์ผํ ํ๋ก์ ํธ๊ฐ 52 (!!!) ์ด๊ฐ ์๋ 0.9 ์ด์ ์คํ๋ฉ๋๋ค!
ํ๋ก์ ํธ์ npm remove jest
npm install -g jest
๋ฌผ๋ก ๊ฐ๋ฐ์ ์ข ์์ฑ์ผ๋ก jest๋ฅผ ํ๋ก์ ํธ์ ๋ค์ ํตํฉํ๊ณ ์ถ์ต๋๋ค. ์ ๊ทธ๋ฐ์ง ์์ญ๋๊น?
๋ฏธ์น ์ง์ด์ผ!
๋จ์ํ jest๋ฅผ ์ ์ธ๊ณ์ ์ผ๋ก ์ค์นํ๋ฉด ์ด์ ์ ํํ ๋์ผํ ํ๋ก์ ํธ๊ฐ 52 (!!!) ์ด๊ฐ ์๋ 0.9 ์ด์ ์คํ๋ฉ๋๋ค!
ํ๋ก์ ํธ์npm remove jest
npm install -g jest
๋ฌผ๋ก ๊ฐ๋ฐ์ ์ข ์์ฑ์ผ๋ก jest๋ฅผ ํ๋ก์ ํธ์ ๋ค์ ํตํฉํ๊ณ ์ถ์ต๋๋ค. ์ ๊ทธ๋ฐ์ง ์์ญ๋๊น?
์ด๊ฒ์ ๋์๊ฒ ๋ฐ์ด๋ฌ์ค ์ค์บ๋ ๋ฌธ์ ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ์ฆ, ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ ํฌ๋กค๋ง ์๋๋ฅผ ๋ฆ์ถ๋ ๋ฐ์ด๋ฌ์ค ์ค์บ ๋ฒ์์ ์์ง๋ง ๊ธ๋ก๋ฒ npm ๋๋ ํ ๋ฆฌ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด๊ฒ์ ๋จ์ง ์ถ์ธก ์ผ๋ฟ์ ๋๋ค.
๋ฐฉ๊ธ @JPustkuchen ๊ณผ ๋์ผํ ๊ฒ์ ์๋ํ์ผ๋ฉฐ ์ฑ๋ฅ์ ~ 10 ์ด์์ 1 ์ด ๋ฏธ๋ง์ผ๋ก ์ด๋ํฉ๋๋ค.
Windows Defender์์ ํ๋ก์ ํธ ํด๋๋ฅผ ์ ์ธํ์ง๋ง Jest๊ฐ ์ฌ์ ํ ๋๋ฆฌ๊ฒ ์คํ๋ฉ๋๋ค.
์์ง ์์ ์ค์ธ์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฝ๋์์ ์คํ๋ฅผ ์ ๋ ฅํ๋ฉด ์๊ณ ๋ชจ๋์ ํ ์คํธ๊ฐ ์ฆ์ ์คํจํฉ๋๋ค. ํ ์คํธ๋ฅผ ์ปดํ์ผํ๊ธฐ ์ ์ ์ค์ ๋ก ์ ๋๋ ํ ๋ฆฌ ํฌ๋กค๋ง์ ๊ฐ์ํ์ง ์๋๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์์ฃผ ๊ฐ๋จํ ํ ์คํธ์๋ 10 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ์ ์ด๋ ์ด๊ฒ์ด ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์ธ์ ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ฌ๋ก์๋ ์ถฉ๋ถํ ์ฑ๋ฅ์ ๊ฐ์ง ๋ด Windows ๋ฐ์คํฌํฑ ์ปดํจํฐ (๋๋ฃ ์ธ ๋งฅ๋ถ๋ณด๋ค ํจ์ฌ ๋ ๋ง์)๊ฐ ํ ์คํธ๋ฅผ ์คํํ ๋ ๋งฅ๋ถ๋ณด๋ค ์ฝ 69 ๋ฐฐ ๋๋ฆฝ๋๋ค! Jest ํ ์คํธ๊ฐ ๋๋ฌด ๋๋ฆฌ๊ฒ ์คํ๋๊ธฐ ๋๋ฌธ์ ์์ ํ๋ ๊ฒ์ด ๋๋ฌด ๋นํจ์จ์ ์ด๋ฏ๋ก ์ค์ ๋ก ํ๋ฐํธ ์๋ ์ฝ๋๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๋๋ก ๊ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ผ๋ฉด Jest์์ ๋ฉ์ด์ ธ ์ผ ํ ์๋ ์์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๋ฒ๊ฐ์ฒ๋ผ ๋น ๋ฅด์ง ๋ง Jest ํ ์คํธ๋ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ค์ ํ ์คํธ ๋ก์ง์ด ์คํ๋ ๋ ์ค์ ๋ก ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ์์ ์ ์๊ฐ์ด ์์๋ฉ๋๋ค.
์ข ๋ ๊ธ์ ์ ์ธ ์ ์์, ์ ๋์ด ๋ฒ๊ทธ์ ๊ฐ์ฌ์ ํฐ ๋น์ ์ก๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ์ฃผ์ ๊ฐ๋ฐ ์ํฌ ํ๋ก์ฐ๋ฅผ ์ํด Linux๋ก ์ ํํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ฒ ๋ ๊ฒ์ ๋ง์ง๋ง ๋นจ๋์์ผ๋ฉฐ ๊ทธ ์ด๋ ๋๋ณด ๋ค ํ๋ณตํ์ต๋๋ค. ๊ฐ๋ ๋ ๊ฑฐ์ ํ๋ก์ ํธ์์ ์์ ํด์ผํ๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ๋์ ๊ฐ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ ์๋ ์์ง๋ง ASP.NET ์ฝ์ด๊ฐ ํฌ๋ก์ค ํ๋ซํผ์ด๊ธฐ ๋๋ฌธ์ Windows๋ก ๋ค์ ๋ถํ ํ๋ ์ด์ ๊ฐ ํญ์ ์ค์ด๋ค๊ณ ์์ต๋๋ค.
@ timrobinson33 ์ ๋ฐ ์ฃผ์ ์ ๋ํด ๊ณ์ํฉ์๋ค. Node๊ฐ ๋ชจ๋ ํ๋ซํผ์์ ์ ์๋ํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด jest
์ด Windows์ ๋ค๋ฅธ ํ๊ฒฝ๋ณด๋ค 68 ๋ฐฐ ๋๋ ค ์ผ ํ ์ด์ ๋ ์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ํ
์คํธ ๋ฌ๋์์๋์ด ๋ฌธ์ ๋ฅผ ๊ฒฝํ ํ ์ ์ด ์์ต๋๋ค.
๋ฒค์น ๋งํฌ jest github repo์์ v26.4.2๋ก ํ
์คํธํ์ต๋๋ค.
https://github.com/nasreddineskandrani/benchmark_jest
๋ด ์ปดํจํฐ์ ๋
ธ๋ ๋ฒ์ : v12.13.0
๊ฐ๋จํ ํ
์คํธ๋ฅผ ์
๋ฐ์ดํธํด๋ ๊ด์ฐฎ์ต๋๋ค (์คํฌ๋ฆฐ ์ท ์ฐธ์กฐ)! ๋์๊ฒ ๋๋ด์ ์ด์ ๊ฐ๋จํ ํ
์คํธ์ ๋ง์ต๋๋ค.
์ง์ฅ์์ ๋ฌธ์ ๊ฐ์๋ ๊ฒฝ์ฐ. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด์ฐฎ ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ๋ถ๋ฆฌํด์ผํฉ๋๋ค.
@empperi ๋ด ๋ฒค์น ๋งํฌ ์ ์ฅ์๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด v26 ํด๋๋ก ์ปดํจํฐ์์์ด ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ ค์ฃผ์ธ์. 0.166ms๊ฐ ์๋๊ฑฐ๋ ์ฃผ๋ณ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ์ ๋๋ค.
๋ฒค์น ๋งํฌ jest github repo์์ v26.4.2๋ก ํ ์คํธํ์ต๋๋ค.
https://github.com/nasreddineskandrani/benchmark_jest
๋ด ์ปดํจํฐ์ ๋ ธ๋ ๋ฒ์ : v12.13.0๊ฐ๋จํ ํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธํด๋ ๊ด์ฐฎ์ต๋๋ค (์คํฌ๋ฆฐ ์ท ์ฐธ์กฐ)! ๋์๊ฒ ๋๋ด์ ์ด์ ๊ฐ๋จํ ํ ์คํธ์ ๋ง์ต๋๋ค.
์ง์ฅ์์ ๋ฌธ์ ๊ฐ์๋ ๊ฒฝ์ฐ. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด์ฐฎ ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ๋ถ๋ฆฌํด์ผํฉ๋๋ค.@empperi ๋ด ๋ฒค์น ๋งํฌ ์ ์ฅ์๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด v26 ํด๋๋ก ์ปดํจํฐ์์์ด ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ ค์ฃผ์ธ์. 0.166ms๊ฐ ์๋๊ฑฐ๋ ์ฃผ๋ณ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ์ ๋๋ค.
์์๋๋ก ํ
์คํธ ์ค์ ์ฑ๋ฅ์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ค์ ๋ก ์ปดํจํฐ๋ณด๋ค ์ฝ๊ฐ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. __tests__
์๋์ 100 ๊ฐ์ ํ
์คํธ ํ์ผ์ ํฌํจํ๋๋ก ํ
์คํธ ์ค์ ์ ๋ณ๊ฒฝํ์ผ๋ฉฐ์ด ํ์ผ๋ ์ ์์ ์ผ๋ก ์คํ๋ฉ๋๋ค. ์ฐ๋ฆฌ ์ฑ์ react-scripts
๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ง๋ง ์ฑ๋ฅ์๋ ์ฐจ์ด๊ฐ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์์ ์ ์ถ๊ฐํ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ WSL2 bash (NTFS ํ์ผ ์์คํ ์ ๋ํด) ๋ฐ ๋ถ์์ ์ด๋ฌํ ํ ์คํธ๋ฅผ ์คํํ๋ ค๊ณ ์๋ํ์ผ๋ฉฐ ์คํ ์๊ฐ์ ์์ powershell์ ๋นํด ๊ฑฐ์ 10 ๋ฐฐ์์ต๋๋ค. NTFS์ ๋ํ WSL2์์๋ ๋ ๋๋ฆฐ I / O ์๋๊ฐ ์์๋์ง๋ง์ด ์ค์ ์ด ์ผ๋ง๋ ๊ฐ๋จํ์ง๋ฅผ ๊ณ ๋ คํ๋ฉด (๊ฐ๊ฐ ๋จ์ผ ํ ์คํธ๊ฐ์๋ 100 ๊ฐ์ ํ ์คํธ ํ์ผ) ์ค์ ๋ก ๊ทธ๋ค์ง ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ์ฐธ๊ณ ๋ก WSL2 bash์์ ์ด๊ฒ์ ์คํํ์ต๋๋ค.
time find . -name "*.js" -print | xargs cat
...(file content prints omitted)...
real 0m0.138s
user 0m0.030s
sys 0m0.000s
WSL2์์ ํ์ผ ์์คํ ์ ์ฝ๋ ๋ฐ ์๊ฐ์ด ๊ฑฐ์ ๊ฑธ๋ฆฌ์ง ์์์ ๋ณด์ฌ์ค๋๋ค. Powershell์์ ์ ์ฌํ ๋ช ๋ น์ ์ฐธ์กฐํ๋ ค๋ฉด :
> Measure-Command { ls *.js | % { cat $_ } }
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 49
Ticks : 499000
TotalDays : 5,77546296296296E-07
TotalHours : 1,38611111111111E-05
TotalMinutes : 0,000831666666666667
TotalSeconds : 0,0499
TotalMilliseconds : 49,9
์ฑ๋ฅ์ด ๊ฐ์ ์ผ๊ตฌ์ฅ์ ์์์ ๋ณด์ฌ์ค๋๋ค.
๋ฐ๋ผ์์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Jest๊ฐ I / O๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ์ ์์ผ๋ฉฐ ์ด๋ WSL2์ ์ฑ๋ฅ์ ํฌ๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋์๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ํ๋ก์ ํธ์ ๊ดํด์๋ ์ฝ๋ ๋ฐ ํ ์คํธ์ ๋ฌธ์ ๋ก ์ธํด bash๋ฅผ ์๊ตฌํ์ง ์๋ ๊ฒ์ด ๊ฐ๋จํ ์์ ์ด ์๋๋๋ค. WSL2๊ฐ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์๋ค๋ ์ฌ์ค์ ๊ฐ์ํ ๋ ์ด๊ฒ์ ์กฐ์ฌํด์ผ ํ ์ค์ ๋ฌธ์ ๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
:ํธ์งํ๋ค:
ํธ๊ธฐ์ฌ์ผ๋ก ๋๋ --no-watch
๋ก ํ
์คํธ ์ค์ํธ๋ฅผ ์คํํ์ฌ WSL2๋ฅผ ํตํด ํ์ผ ์์คํ
์ ๋ณด๋ ๊ฒ์ด ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ํ์ธํ์ต๋๋ค. ๋๋ต์ '์๋์ค'์
๋๋ค. ์ค์ ๋ก ๊ทธ๋ค์ง ์ํฅ์์ฃผ์ง ์์ต๋๋ค.
๋ด Windows ์ปดํจํฐ์์ ๋ฒค์น ๋งํฌ๋ฅผ ์คํํ๋ ๋ฐ ์ฝ 1.6 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค. WSL์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
AVG ๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ์ ์ฌ์ฉํ๊ณ ์์ง๋ง ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฐ ๋
ธ๋ ์คํ ํ์ผ์ ๋ํ ์์ธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
๋ด ํ๋ ๋๋ผ์ด๋ธ๋ SSD์
๋๋ค.
๋
ธ๋ ๋ฒ์ ์ v12.16.1
ํ ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ํ์ผ ๊ฐ์์๊ฐ ์ฆ์ ํธ๋ฆฌ๊ฑฐ๋์ง๋ง ํด๋น ์ ๋ฐ์ดํธ๋ฅผ ์คํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ค์ ์๊ฐ์ ์ฝ 1 ์ด ~ 2.4 ์ด์ ๋๋ค.
ํ๊ฒฝ์ด ๋ฌธ์ ์ธ์ง ํ ์คํธํ๊ณ ์ถ์์ต๋๋ค.
์ด ์ ์ฅ์๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์์ต๋๋ค .https : //github.com/kentcdodds/react-testing-library-course/tree/tjs
npm test
๊ฐ์ ๋ชจ๋ ํ
์คํธ๊ฐ ์๊ณ ๋ชจ๋์์ ์คํ๋๊ธฐ ์์ํฉ๋๋ค.Kent C. Dodds๊ฐ ์ ๊ธ ๊ณผ์ ์์ ์๋ง์ธ ํ๊ฒฝ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฐ ๊ทธ๋ ๊ฒํ๋ค๋ฉด ์๋ง ๊ฑฐ๊ธฐ์์ ๋๋ฒ๊ทธ ํ ์ ์์ต๋๋ค. :? ๊ทธ์ ๋น๋์ค์์๋ ์ ์๋ํ๋ฉฐ Mac์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ์ฌํ ํ ์์๋ ๋งค์ฐ ์ด์ํ ์ ์ ์ฃผ๋ชฉํด์ผํฉ๋๋ค. ํ์ผ ์ค ํ๋ (tdd-02 ... js)์ ๋ํด ์ฝ 0.1 ์ด ๋์ ์คํ๋๊ณ ๊ทธ ์์์๋ ํ์ผ ( tdd-01 ... js)-์ฝ 3 ์ด. ์ฝ๋๋ ๊ฑฐ์ ๋์ผํ๋ฉฐ ๋์ผํ ์ข ์์ฑ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋์ ๋น ๋ฅด๊ฒ ์คํ๋๋ ํ์ผ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ๋๋ฆฌ๊ฒ ์คํ๋๋ ํ์ผ์ ๋ถ์ฌ ๋ฃ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ฒฐ๊ณผ๋ ๋์ผํ์ต๋๋ค. ๋๋ฆฌ๊ฒ ์คํ๋๋ ํ์ผ์ ๋๋ฆฌ๊ฒ ์ ์ง๋๊ณ ๋น ๋ฅด๊ฒ ์คํ๋๋ ํ์ผ์ ์ค์ ์ฝ๋๊ฐ ๋ฐ๋ ์ํ๋ก ๋น ๋ฅด๊ฒ ์ ์ง๋์์ต๋๋ค. ๋ฏธ์ณ ๊ฐ๊ณ ์์ต๋๋ค. ์ด์ ๋ ํ์ผ์ด ๋ค์ ๋๋ฆฌ๊ฒ ์คํ๋ฉ๋๋ค (3-6 ์ด).
@Glinkis ์ฒซ ๋ฒ์งธ ์คํ ํ Enter ํค๋ฅผ ๋๋ฌ๋ ๋ ๊น์? ์ฌ์ ํ 1.6 ์ด ์์ ํ์ ๋๋์? (์ฌ๋ฐฉ์ก ํธ๋ฆฌ๊ฑฐ)
@SimeonRolev ๋๋ ๋น์ ์ด ๊ฒ์ ํ ์์ ๋ฅผ ์ดํด๋ณด๊ณ ๋์ผํ ๋จ๊ณ (ํจํด ...)๋ก ์ด๋ค ์ข
๋ฅ์ ์ซ์๋ฅผ ์ป์๋์ง ๋ณผ ๊ฒ์
๋๋ค.
์ต์ ์ ๋ณด:
try1 : ๋๋ ๋น์ ์ ๋จ๊ณ๋ฅผ ์๋ํ์ ๋ ๋ด๊ฐ ๊ทธ๊ฒ์ ์๋ํ๊ณ 6 ์ด๋ฅผ ์ป์์ต๋๋ค-> ๊ฐ์ ํ
์คํธ๋ฅผ ๋ค์ ์คํํ ๋ 3 ์ด๋ก ๋จ์ด์ก์ต๋๋ค (์
๋ ฅ์ ๋๋ฅด์ญ์์ค)
try2 : Kent repo์์ jest๋ฅผ 26.4๋ก ์
๊ทธ๋ ์ด๋-> ์ฌ์คํ์ ์ํด ๊ฑฐ์ ๋์ผํ๊ฒ 3 ์ด ์คํ
try3 : ๋ฒค์น ๋งํฌ ํ
์คํธ ์ ์ฅ์์์ index.spec.js
ํ์ผ์ ๊ฐ์ ธ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Kent repo์ ๋จ์ด ๋จ ๋ ธ์ต๋๋ค. (๋ค๋ฅธ ๋ชจ๋ ํ
์คํธ ํ์ผ ์ญ์ )-> ๋๋ 2.8 ์ด (SAME JEST 26.4.2, SAME COMPUTER, POWERSHELL, NODE_VERSION ๋ฑ ... ์ด์ ํ
์คํธ๊ฐ ์ฌ๊ธฐ์ ๊ฒ์ ๋จ)
๋๋์ด try3์ ์ฌ์ ํ ์ดํดํ์ง ๋ชปํฉ๋๋ค => ๋ด ํ์ผ์ ๋ํ Kent repo ์์ ์ฌ์คํ์ ~ 3sec์ด์ง๋ง ๋ด repo ์์๋ ์ฌ์คํ์ 0.300s๋ก ๋จ์ด์ง๋๋ค (์ด๊ฒ์ ๋๋ฒ๊น
ํด์ผํฉ๋๋ค)
ํธ์ง : ์ผํธ๊ฐ ์ด๊ฒ์ ํ์ธํด์ผํฉ๋๋ค : P
Enter๋ฅผ ๋๋ฅด๋ฉด ์ฝ 200ms ๋ด์ ํ ์คํธ๊ฐ ์คํ๋ฉ๋๋ค.
@nasreddineskandrani ๊ทธ ๋ฐ๋๋ก ์๋ ํ์ต๋๊น? ๋ด ๋ง์, ๋๋ฆฐ ์ ์ฅ์์์ ๋น์ ์ ๊ฒ์ผ๋ก ํ ์คํธ๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ ๋๊น? ๊ทธ๋ฌ๋ ๋ฌธ์ ๊ฐ ๋ด๊ฐ ๊ฒ์ ํ ์ ์ฅ์์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ถ๋ช ํ ์ ์ ์๋ฏ์ด ๋ง์ ์ฌ๋๋ค์ด ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ผ๋ฉฐ ์ฌํ ๊ฐ๋ฅํ ์๋ฅผ ๊ฒ์ํ์ต๋๋ค.
@kentcdodds ํ ๋ฒ ๋ ์ฐ๋ฆฌ์ ์์ ์ด ๋์๊ฒ ์ต๋๊น?
@SimeonRolev ๋ด ๋ฒค์น ๋งํฌ์์ Kent repo์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค. Kent Repo์ ๋ญ๊ฐ ์์ต๋๋ค. ์ด ๋๋ฆฐ ์์ธ์ => ์ธ๋ถ ๋๋ด์ด ๋ ๋น ๋ฆ ๋๋ค.
์ด github ๋ฌธ์ ๋ ๋์ผํ ์ฑ๋ฅ์ ๋๋ฌํ์ง ์์๊ธฐ ๋๋ฌธ์ Jest ์ฑ๋ฅ ์ฐฝ๊ณผ macOS / Linux์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ค์ ๋ด ์๊ฐ์ ๊ทธ๊ฒ์ ์ ํ์ง ์์๋ค. (jest v23์ ์ฌ์ฉํ๋ฉด 2 ๋ ์ ๋ณด๋ค ํจ์ฌ ๋์)
์๋
ํ์ธ์, ์ฌ๊ธฐ์์๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. Windows ์ปดํจํฐ์ WSL์ด ์์ต๋๋ค. ์ด ๋์์ ํ
์คํธํ๊ธฐ ์ํด ํ๋ก์ ํธ ํ์ผ์ WSL์ ๋ณต์ฌํ์ต๋๋ค. ๋ค์์ ๋์ผํ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ํ
์คํธ์ ์คํ์
๋๋ค.
Windows 10 (๋ฒ์ 2004) :
WSL 2 (Ubuntu 20.04) :
ํ
์คํธ๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
ํ๋ก์ ํธ๋ CRA๋ก ์์ฑ๋์์ผ๋ฏ๋ก ์ค์ ์ ๋ง์น ์์๋ ๊ตฌ์ฑ์ด ์์ผ๋ฉฐ Jest ์ธก๋ฉด์์ ์๋ฌด๊ฒ๋ ์ถ๊ฐํ์ง ์์์ต๋๋ค.
๋์ผํ ํ
์คํธ๊ฐ ๊ฑฐ์ ์ฆ๊ฐ์ ์ผ๋ก ๋ชจ์นด์์ ์์ฒญ๋๊ฒ ๋น ๋ฅด๊ฒ ์คํ๋ฉ๋๋ค. ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ฅผ์ํ ํ
์คํธ ํ๊ฒฝ์ ์ค์ ํ๋ ค๊ณ ํ๋๋ฐ, Jest๋ฅผ ์ ๋ง๋ก ์ฌ์ฉํ๊ณ ์ถ์ง๋ง, ์ ์ ๋ ๋ง์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ ์๋ก ํ
์คํธ ์ค์ํธ๊ฐ ๋๋ฆฌ๊ณ ๋๋ ค์ง ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ๊ฐ์ ํ
์คํธ๋ 0.8 ์ด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. Windows์์ ํ
์คํธ ์คํ์ ์๋ง์ผ๋ก ๋ง๋๋ ๊ฒ์ด ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ฌธ์ ๋ ๋ ์ฌํ๋ค. ํ ๋ฒ์ ํ
์คํธ๋ 15 ์ด ์ ๋ ๊ฑธ๋ฆฌ์ง ๋ง --runInBand์๋ฅผ ์ถ๊ฐํ๋ฉด ์ํฉ์ด ์กฐ๊ธ ๋์์ง๋ ๊ฒ ๊ฐ์์ง๋ง ๋ชจ์นด ์์น ๋ชจ๋๊ฐ ์ฆ๊ฐ์ ์ด๋ผ๋ ์ ์ ๊ฐ์ํ ๋ ์ฌ์ ํ ์ถฉ๋ถํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Yarn์ ๋ฒ์ 1.22.5์ด๊ณ ๋ค๋ฅธ ๋ชจ๋ npm ์ข ์์ฑ (์ : react ๋ฐ react-scripts)์ ์ต์ ๋ฒ์ ์ ๋๋ค.
๋ฐ์ด๋ฌ์ค ๋ฐฑ์ ๋ฐ Windows ๋ฐฉ์ด๊ธฐ๋ฅผ ๋นํ์ฑํํ์ฌ ํจ๊ณผ๊ฐ ์๋์ง ํ์ธํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ํ ๋ด ํ๋ก์ ํธ ํด๋์ ๋ํ ์ธ๋ฑ์ฑ์ ๋นํ์ฑํํ์ฌ ์๋ฌด ์์ฉ์ด ์์ต๋๋ค.
ํธ์ง : Enter ํค๋ฅผ ๋๋ฌ ๋ณด์๊ณ ํ
์คํธ๋ WSL๋งํผ ๋น ๋ฆ
๋๋ค.
์ด์ ์ ๋ง ํผ๋ ์ค๋ฌ์์ :)
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ฌ์ ํ โโ๋งค์ฐ ๋๋ฆฐ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ ํ ์คํธ๋ 0.3 ์ด๊ฐ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๋ฌด ์์ ๋ํ์ง ์๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๋งค์ฐ ๋ง์ต๋๋ค. ์ด ์ค์ํธ๋ 0.1 ์ด ์ด๋ด์ ์๋ฃ ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
ํธ์ง 2 : ํ
์คํธ ๋ชจ์์ 100 ๊ฐ์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ์ ๋ Enter ํค๋ฅผ ๋๋ฌ ์คํํ๋๋ผ๋ ์คํํ๋ ๋ฐ ์ฝ 44 ์ด๊ฐ ๊ฑธ๋ ธ์ต๋๋ค.
๋์ผํ ํ
์คํธ ๋ชจ์์ WSL์์ ์ฝ 9-10 ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๋ ์๋ก์ด MacBook Pro๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. MacOS์ Windows 10์ ๋ชจ๋ ์ฌ์ฉํ๋ ํ์์ด ์์ผ๋ฏ๋ก ๋๋ผ์ด๋ธ์ ํํฐ์ ์ ๋ ๊ฐ ๋ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ๋๋ Windows 10 ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ Tuxera NTFS๋ฅผ ์ฌ์ฉํ๋ ๊ณต์ ์คํ ๋ฆฌ์ง ์ฉ์ ๋๋ค.
์ ๋ ์ค๋ ๋จ์ ํ ์คํธ๋ฅผ ํตํฉํ๋ JavaScript ๊ฐ์๋ฅผ ์ค๋นํ๋ฉด์์ด ์๋ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ค์ ๋ก MacOS์์ Jest๋ฅผ ์คํํ๊ณ ์์ง๋ง ์ฝ๋์ ํ ์คํธ๋ ๊ณต์ NTFS ํํฐ์ ์ ์์ต๋๋ค. ๋ชจ๋ ์ ํ๊ตฐ์ด
describe.skip
๋ก ํ์๋ ๊ฒฝ์ฐ์๋ Jest๋ ๋จ์ผ ์คํ ๋ชจ๋์ ๊ฐ์ ๋ชจ๋ ๋ชจ๋์์ ์๋ฃํ๋ ๋ฐ 10 ์ด ์ด์ ๊ฑธ๋ฆฝ๋๋ค.8 ๊ฐ ์ค์ํธ
42 ํ ํ ์คํธ
jest
๋ฅผmocha
์chai
๋ฐ๊พธ์๊ณ ์คํ์ ์ฝ 1 ์ด ๋จ์ผ ๋ฐ 10 ๋ฐ๋ฆฌ ์ด ์๊ณ ๋ชจ๋๋ก ๋์ ์์ต๋๋ค.