Jest: μ‹€ν–‰ 쀑인 μ „μ—­ `jest-cli`λŠ” 였λ₯˜ λŒ€μ‹  κ²½κ³ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 07μ›” 14일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: facebook/jest

μ „ μ„Έκ³„μ μœΌλ‘œ μ„€μΉ˜λœ Jest 버전을 μ‹€ν–‰ν•  λ•Œ 트리거된 process.exit(1) 호좜 은 μ΄μƒν•œ ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό μ΄ˆλž˜ν•©λ‹ˆλ‹€. λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ ν†΅κ³Όν•˜λ”λΌλ„ ν”„λ‘œμ„ΈμŠ€λŠ” 0이 μ•„λ‹Œ μ’…λ£Œ μ½”λ“œλ₯Ό λ°˜ν™˜ν•˜λ©° κ·Έ μ΄μœ λŠ” μ¦‰μ‹œ λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

jest κ°€ npm test ν• λ‹Ήλ˜λ©΄(맀우 일반적인 κ·œμΉ™μž„) λ‹€μŒμ„ μ–»μŠ΅λ‹ˆλ‹€.

Please run `npm install` to use the version of Jest intended for this project.
...
163 tests passed (163 total in 30 test suites, run time 3.292s)
npm ERR! Test failed.  See above for more details.

λͺ…ν™•ν•œ μ„ΈλΆ€ 정보("Please run..." 행이 였λ₯˜ λ©”μ‹œμ§€μ²˜λŸΌ 보이지 μ•ŠμŒ) 및 μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈκ°€ μ—†μœΌλ―€λ‘œ 디버깅이 μ–΄μƒ‰ν•©λ‹ˆλ‹€.

ꢌμž₯ 사항

  1. getJest μ—μ„œ Jest의 νŒ¨ν‚€μ§€ 둜컬 버전에 λŒ€ν•œ ν…ŒμŠ€νŠΈλ₯Ό μ™„μ „νžˆ μ œκ±°ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ‚¬λžŒλ“€μ΄ npm install λ₯Ό μ‹€ν–‰ν•˜μ§€ μ•Šκ³  Jest의 둜컬이 μ•„λ‹Œ 버전을 μ‚¬μš©ν•˜λ €λŠ” 경우 νŒ¨ν‚€μ§€κ°€ μ™œ 신경써야 ν•˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
  2. ν…ŒμŠ€νŠΈκ°€ 계속 μœ μš©ν•  μ •λ„λ‘œ μœ μš©ν•œ 경우 μ’…λ£Œ μ½”λ“œμ— 영ν–₯을 주지 μ•Šκ³  console.warn λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλŠ” μ—¬μ „νžˆ 문제 없이 싀행될 수 있고 κ²½κ³ λŠ” 좜λ ₯이 μ‚¬μš©μžκ°€ μ˜λ„ν•œ 것을 μ •ν™•νžˆ λ°˜μ˜ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€λŠ” μΆ©λΆ„ν•œ ν‘œμ‹œμ΄κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
  3. 0이 μ•„λ‹Œ μ’…λ£Œ μ½”λ“œλ₯Ό λ°˜ν™˜ν•˜λŠ” 것이 μ„ ν˜Έλ˜λŠ” 경우 ν…ŒμŠ€νŠΈλŠ” 디버깅을 μ‰½κ²Œ ν•˜κΈ° μœ„ν•΄ μ‹€μ œ Error λ₯Ό λ˜μ Έμ•Ό ν•©λ‹ˆλ‹€. - Node의 λ‚΄μž₯ 였λ₯˜ μ²˜λ¦¬λŠ” console.error λ‹€μŒμ— process.exit(1) μ˜€λŠ” 것보닀 훨씬 더 λͺ…μ‹œμ μž…λ‹ˆλ‹€.
  4. μ •λ§λ‘œ 였λ₯˜λ₯Ό λ˜μ§€κ³  싢지 μ•Šλ‹€λ©΄ λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ 싀행될 λ•ŒκΉŒμ§€ 기닀리지 μ•Šκ³  μ¦‰μ‹œ process.exit(1) ν˜ΈμΆœν•˜μ‹­μ‹œμ˜€. 둜컬둜 μ •μ˜λœ 쒅속성이 λˆ„λ½λœ 경우 Jestλ₯Ό μ „μ—­μ μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” 것이 쒋지 μ•Šμ€ 경우 μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ „ν˜€ μ‹€ν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@mmcgahan @cpojer 원사 μž‘μ—… 곡간 monorepo λ‚΄μ˜ μžμ‹ νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ Jestλ₯Ό μ‹€ν–‰ν•  λ•Œ 치λͺ…적이지 μ•Šμ€ 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. jest 을 μ°ΎλŠ” 방식이 monorepo λ£¨νŠΈκΉŒμ§€ ν˜Έμ΄μŠ€νŠΈλ˜λŠ” νŒ¨ν‚€μ§€λ₯Ό 닀루지 μ•ŠκΈ° λ•Œλ¬Έμ— 였λ₯˜λ‘œ ν‘œμ‹œλ˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ?

λͺ¨λ“  3 λŒ“κΈ€

이 문제λ₯Ό μ œκΈ°ν•˜κ³  λ¬Έμ œμ— λŒ€ν•œ μžμ„Έν•œ μ„€λͺ…을 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. μ†”μ§νžˆ λ§ν•΄μ„œ, λ‚˜λŠ” 이 일에 λŒ€ν•΄ ν™”κ°€ 났고 Jest의 ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈλ₯Ό 닀루기가 쑰금 더 μ–΄λ €μ›Œμ‘ŒμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ˜ν•œ Jestκ°€ μ—¬μ „νžˆ ν…ŒμŠ€νŠΈλ₯Ό 계속 μ‹€ν–‰ν•˜κ²Œ λœλ‹€λ©΄ 이것이 ν˜„μž¬ μž‘λ™ν•˜λŠ” 방식이 μ˜λ―Έκ°€ μ—†λ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. μ‹œκ°„μ„ λ‚­λΉ„ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.

ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό λ³΄λ‚΄μ‹œκ² μŠ΅λ‹ˆκΉŒ?

제 μ œμ•ˆμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • process.exit(1) 제거
  • process.on('exit', () => console.log(chalk.red('The error message '))) μˆ˜ν–‰ν•˜λ©΄ ν…ŒμŠ€νŠΈ 싀행이 끝날 λ•Œ 무언가가 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 멋진 빨간색 λ©”μ‹œμ§€κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

그것은 μ‚¬λžŒλ“€μ΄ 잘λͺ»λœ λ²„μ „μ˜ Jestλ₯Ό μ‚¬μš©ν•  수 있게 ν•΄μ£Όμ§€λ§Œ(μ΄λŠ” λ³€κ²½ 사항이 μžˆμ„ 수 μžˆμœΌλ―€λ‘œ ꢌμž₯ν•˜μ§€ μ•ŠμŒ) μ—¬μ „νžˆ ν…ŒμŠ€νŠΈ 싀행을 μ œλŒ€λ‘œ μ™„λ£Œν•˜κ³  맨 μ•„λž˜μ— λ©”μ‹œμ§€λ₯Ό μΈμ‡„ν•©λ‹ˆλ‹€. μ–΄λ–»κ²Œ μƒκ°ν•˜λ‚˜μš”?

@cpojer μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€. λΉ λ₯Έ 응닡에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€! 곧 PR을 μ œμΆœν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

@mmcgahan @cpojer 원사 μž‘μ—… 곡간 monorepo λ‚΄μ˜ μžμ‹ νŒ¨ν‚€μ§€ λ‚΄μ—μ„œ Jestλ₯Ό μ‹€ν–‰ν•  λ•Œ 치λͺ…적이지 μ•Šμ€ 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. jest 을 μ°ΎλŠ” 방식이 monorepo λ£¨νŠΈκΉŒμ§€ ν˜Έμ΄μŠ€νŠΈλ˜λŠ” νŒ¨ν‚€μ§€λ₯Ό 닀루지 μ•ŠκΈ° λ•Œλ¬Έμ— 였λ₯˜λ‘œ ν‘œμ‹œλ˜λŠ” 것 κ°™μŠ΅λ‹ˆκΉŒ?

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰