Jest: ํ…Œ์ŠคํŠธ ํ†ต๊ณผ์— ๋Œ€ํ•œ ์ฝ˜์†” ๋กœ๊น… ์ˆจ๊ธฐ๊ธฐ ๋ฐ ์‹คํŒจ ์‹œ ํ‘œ์‹œ

์— ๋งŒ๋“  2017๋…„ 07์›” 28์ผ  ยท  47์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: facebook/jest


๊ธฐ๋Šฅ ์„ ์š”์ฒญํ•˜๊ฑฐ๋‚˜ ๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ  ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํŠน์ง•

ํ˜„์žฌ ํ–‰๋™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

jest --watch ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ฝ˜์†” ๋กœ๊น…์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค( --silent ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ).

ํ˜„์žฌ ๋™์ž‘์ด ๋ฒ„๊ทธ์ธ ๊ฒฝ์šฐ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„์™€ https://repl.it/languages/jest๋ฅผ ํ†ตํ•ด repl.it ๋ฐ๋ชจ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ yarn install ๋ฐ yarn test ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณต ํ•˜์„ธ์š”. yarn test .

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ฐ€์žฅ ํ•„์š”ํ•œ ๋•Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฝ˜์†” ๋กœ๊น… ๋งŒ ๋ณด๋Š” ๊ฒƒ์ด ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•ด ์ฝ˜์†” ๋กœ๊ทธ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ Jest ๊ตฌ์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  Jest, ๋…ธ๋“œ, yarn/npm ๋ฒ„์ „ ๋ฐ ์šด์˜ ์ฒด์ œ๋ฅผ ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค.

$ jest --version && node --version && yarn --version
v20.0.4
v6.10.3
0.27.5

๋งฅ OS X 10.12.5

jest.config.js :

module.exports = {
  collectCoverageFrom: ['src/**/*.{js,jsx}'],
  coveragePathIgnorePatterns: [
    '<rootDir>/node_modules/',
    '<rootDir>/src/core/server/webpack-isomorphic-tools-config.js',
    '<rootDir>/src/locale/',
  ],
  moduleDirectories: [
    'src',
    'node_modules',
  ],
  moduleFileExtensions: [
    'js',
    'json',
    'jsx',
  ],
  moduleNameMapper: {
    // Prevent un-transpiled react-photoswipe code being required.
    '^photoswipe$': '<rootDir>/node_modules/photoswipe',
    // Use the client-side logger by default for tests.
    '^core/logger$': '<rootDir>/src/core/client/logger',
    // Alias tests for tests to be able to import helpers.
    '^tests/(.*)$': '<rootDir>/tests/$1',
    // Replaces the following formats with an empty module.
    '^.+\\.(scss|css|svg|woff|woff2|mp4|webm)$': '<rootDir>/tests/emptyModule',
  },
  setupTestFrameworkScriptFile: '<rootDir>/tests/setup.js',
  testPathIgnorePatterns: [
    '<rootDir>/node_modules/',
    '<rootDir>/(assets|bin|config|coverage|dist|docs|flow|locale|src)/',
  ],
  testMatch: [
    '**/[Tt]est(*).js?(x)',
    '**/__tests__/**/*.js?(x)',
  ],
  transform: {
    '^.+\\.js$': 'babel-jest',
    // This transforms images to be a module that exports the filename.
    // Tests can assert on the filenname.
    '^.+\\.(jpg|jpeg|gif|png)$': '<rootDir>/tests/fileTransformer',
  },
  transformIgnorePatterns: [
    '<rootDir>/node_modules/',
  ],
  verbose: false,
};

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. PASS ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฝ˜์†” ์ถœ๋ ฅ์„ ์ˆจ๊ธฐ๊ณ  FAILED ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘๋Š” aa ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด ํ…Œ์ŠคํŠธ ์ถœ๋ ฅ์„ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  47 ๋Œ“๊ธ€

๋งž์ถคํ˜• ๋ฆฌํฌํ„ฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CC @aaronabramov

๋‹ค์Œ์€ ํ…Œ์ŠคํŠธ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค. https://github.com/facebook/jest/blob/master/integration_tests/custom_reporters/reporters/test_reporter.js.

์•ˆ๋…•ํ•˜์„ธ์š”, ์œ ์šฉํ•œ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋งž์ถคํ˜• ๋ฆฌํฌํ„ฐ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ๊ฑธ๋ฆผ๋Œ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๋ฆฌํฌํ„ฐ(์ •๋ณด ํ…Œ์ŠคํŠธ ์ถœ๋ ฅ ๋“ฑ)์—์„œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ƒ์†ํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์—†์œผ๋ฉฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋‚ด ๊ตฌ์„ฑ์— ๊ธฐ๋ณธ ๋ฆฌํฌํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  CLI์—์„œ --silent ๋ฅผ ์ „๋‹ฌํ•˜๊ณ (๊ธฐ๋ณธ ๋ฆฌํฌํ„ฐ๊ฐ€ ์ฝ˜์†” ๋กœ๊น…์„ ์ˆจ๊ธฐ๋„๋ก) ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ๋ฅผ ๊ตฌ์„ฑ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋‚ด ๊ตฌ์„ฑ์— ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋กœ๊น…์„ ์ธ์‡„ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌํฌํ„ฐ. --silent ์˜ต์…˜ ๋•Œ๋ฌธ์— ๋ฆฌํฌํ„ฐ ํด๋ž˜์Šค๊ฐ€ ๋” ์ด์ƒ ๋ฒ„ํผ๋ง๋œ ์ฝ˜์†”์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ์— ์‹คํŒจํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ฝ˜์†”์„ ํ‘œ์‹œํ•˜๋Š” ๊ตฌ์„ฑ ๊ฐ’์„ ๋„์ž…ํ•˜๋Š” ํŒจ์น˜๋ฅผ Jest์— ์ œ์•ˆํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํŒจ์น˜๋ฅผ ๊ณ ๋ คํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๊ตฌ์„ฑ ๊ฐ’์„ ํ™•์ธํ•ด์•ผ ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ์ผ๋ฐ˜์ ์ธ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์ž‘๋™ ์ค‘).

diff --git a/packages/jest-cli/src/reporters/default_reporter.js b/packages/jest-cli/src/reporters/default_reporter.js
index 08d4a9f2..adedbdd3 100644
--- a/packages/jest-cli/src/reporters/default_reporter.js
+++ b/packages/jest-cli/src/reporters/default_reporter.js
@@ -176,7 +176,8 @@ class DefaultReporter extends BaseReporter {
       this.log(getResultHeader(result, config));

       const consoleBuffer = result.console;
-      if (consoleBuffer && consoleBuffer.length) {
+      const testFailed = result.numFailingTests > 0;
+      if (testFailed && consoleBuffer && consoleBuffer.length) {
         this.log(
           '  ' +
             TITLE_BULLET +

์ด ์•„์ด๋””์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค์ง€๋งŒ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆจ๊ฒจ์ง„ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PASS __tests__/my_test.js (hidden output)

๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ ๋˜๋Š” ๋‹จ์ผ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ „์ฒด ํ…Œ์ŠคํŠธ ์‹คํ–‰์—๋งŒ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)

@cpojer ์ด์— ๋Œ€ํ•œ ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ด ๋™์ž‘์ด ํ˜ผ๋ž€์Šค๋Ÿฝ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ Jest๊ฐ€ ์ƒํƒœ์— ๊ด€๊ณ„์—†์ด ํ…Œ์ŠคํŠธ๋‹น ์ถœ๋ ฅํ•˜๋Š” ๋‚ด์šฉ์—์„œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

@cpojer ์ €์—๊ฒŒ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์™€ ๊ด€๋ จ๋œ ์ฝ˜์†” ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ๋Š” ๊ฒƒ์€ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

ํƒ€ํ˜‘์œผ๋กœ, ๋‚ด๊ฐ€ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก jest.js ์—์„œ DefaultReporter ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํŒจ์น˜๋ฅผ ์ˆ˜๋ฝํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ปค์Šคํ…€ ๋ฆฌํฌํ„ฐ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๊ณ„๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ…Œ์ŠคํŠธ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

screen shot 2017-11-05 at 16 11 29

https://github.com/facebook/flow/issues/4673 ์œผ๋กœ ์ธํ•ด ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋‹คํ–‰ํžˆ ๋ช‡ ๊ฐ€์ง€ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋งŒ ์žˆ์ง€๋งŒ ๋” ๋งŽ์€ ๋กœ๊น…์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ํ›จ์”ฌ ๋” ๋‚˜๋น ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

๋‚˜๋Š” @miracle2k๋ฅผ ๋‘ ๋ฒˆ์งธ๋กœ, ์˜์กด์„ฑ์—์„œ ๋งŽ์€ ๊ฒฝ๊ณ ์™€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ํ›จ์”ฌ ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ๋ชฉ๋ก๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. PASS ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฝ˜์†” ์ถœ๋ ฅ์„ ์ˆจ๊ธฐ๊ณ  FAILED ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋‚จ๊ฒจ๋‘๋Š” aa ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด ํ…Œ์ŠคํŠธ ์ถœ๋ ฅ์„ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ํ˜„์žฌ ๋Œ€๊ทœ๋ชจ ํ…Œ์ŠคํŠธ ๊ทธ๋ฃน์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—… ์ค‘์ด๋ฉฐ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ ๊ฒฐ๊ณผ๋กœ ์ธํ•ด ๋””๋ฒ„๊น…ํ•  ๋•Œ ์›Œํฌํ”Œ๋กœ๊ฐ€ ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

PASS ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฝ˜์†” ์ถœ๋ ฅ์„ ์ˆจ๊ธฐ๋Š” ํ”Œ๋ž˜๊ทธ์— ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

PASS __tests__/my_test.js (hidden output)

ํ˜น์‹œ๋ผ๋„ ์ด ์ถ”๊ฐ€ ์‚ฌํ•ญ์„ ์žฌ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด์ œ ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š” ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. #4886 ์ฐธ์กฐ(jest 22์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

์ด์ œ ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š” ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ€์ด์Šค๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ๋งŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋กœ๊น…์ด ๋งŽ์€ ์ œํ’ˆ๊ตฐ์—์„œ 100๊ฐœ ํ…Œ์ŠคํŠธ ์ค‘ 5๊ฐœ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์ฝ˜์†” ์ถœ๋ ฅ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋งŒ ๋‹ค์‹œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊น…์„ ์ˆจ๊ธฐ๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋งŒ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์ฝ”๋“œ ํŽธ์ง‘์œผ๋กœ ์ธํ•œ ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ ์‹คํŒจ๋ฅผ ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ํŒ€์ด ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ˆ„๊ตฐ๊ฐ€ ์ œ ์ œ์•ˆ ์„ ํƒ€ํ˜‘์— ๋Œ€ํ•ด ๊ณ ๋ คํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ์ œ์•ˆ์„ ํ†ตํ•ด ์ฝ˜์†” ์ˆจ๊ธฐ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจ์น˜๋ฅผ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์ˆ˜๋ฝ๋˜์ง€ ์•Š์œผ๋ฉด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@kumar303 PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์ƒ๋‹นํžˆ ๋ณต์žกํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. :)

@kumar303 ๊ฒฐ๊ตญ PR์„ ์ œ์ถœํ•˜์…จ๋‚˜์š”? ์ด๊ฒƒ๋„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ํ•˜๋‚˜๋ฅผ ์ œ์ถœํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ž‘์—… ์šฐ์„  ์ˆœ์œ„ ์‚ฌ์ด์— ์‹œ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ €๋ฅผ ๋Šฅ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ์•Œ๋ ค์ฃผ์„ธ์š”!

์ œ ์•„์ด๋””์–ด๋Š” ์ปค์Šคํ…€ ๋ฆฌํฌํ„ฐ ๊ฐ€ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก jest.js ์—์„œ DefaultReporter ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ด ์ค„ ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜์—ฌ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

const testFailed = result.numFailingTests > 0;
if (testFailed && consoleBuffer && consoleBuffer.length) {
  // Log console output
}

๊ทธ ํ›„์— ๋” ๋งŽ์€ ์กฐ์ •์ด ํ•„์š”ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

@kumar303 ๋‚ด ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์ €๋„ ์ด๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. @kumar303 ์˜ ์•„์ด๋””์–ด์— ๋”ฐ๋ผ default_reporter ์‰ฝ๊ฒŒ ํ™•์žฅํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค( jest-cli/build/reporters/default_reporter ์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์„œ์ง€๊ธฐ ์‰ฝ์ง€๋งŒ). ๊ทธ๋Ÿฐ ๋‹ค์Œ result.console ๋‚ด๊ฐ€ ๋ณด๊ธฐ์— ์ ํ•ฉํ•œ

ํ•œ ๊ฐ€์ง€๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ฝ˜์†” ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฒ„ํผ๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—ฌ๊ธฐ์— ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/facebook/jest/issues/2080

๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ ๋‚ด์—์„œ ์ฝ˜์†” ์ถœ๋ ฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ jest๊ฐ€ ์ฝ˜์†” ์ถœ๋ ฅ์„ ํ•ญ์ƒ ๋ฒ„ํผ๋งํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋Š” ํ•œ ์ฝ˜์†” ์ถœ๋ ฅ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌํฌํ„ฐ๋ฅผ ์‚ฌ์šฉ

๊ธฐ๋ณธ ๋ฆฌํฌํ„ฐ๋ฅผ ๋ณด๋‹ค ๊น”๋”ํ•˜๊ฒŒ ๊ณต๊ฐœํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

๊ฐ•์ œ ๋ฒ„ํผ๋ง console.logs์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•จ

showLogsForFailedTests: true ์™€ ๊ฐ™์€ ์ „์—ญ ๊ตฌ์„ฑ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋ณธ๊ฐ’์€ Jest๊ฐ€ ํ˜„์žฌ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉฐ false ๊ฐ’์€ ํ…Œ์ŠคํŠธ๋ฅผ ํ›จ์”ฌ ๋” ์ฆ๊ฒ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด 30๋ช… ์ด์ƒ์˜ ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ๋Š” ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ Jest์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข…๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์†Œ๋…„, ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋†๋‹ด์— ๋Œ€ํ•œ ์‹คํŒจํ•œ ๋กœ๊ทธ ๋งŒ ํ‘œ์‹œํ•˜๋Š” ํ‘œ์ค€ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค ... ์ด๊ฒƒ์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

์ด๊ฒŒ ํ•„์š”ํ•ด. ์ •๋ง ๋ฐฉํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : Jest์˜ ๊ธฐ๋ณธ ๋ฆฌํฌํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ปค์Šคํ…€ ๋ฆฌํฌํ„ฐ์—์„œ @kumar303 ์˜ ์•„์ด๋””์–ด๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค . js

@willdurand ๊ธฐ์ž๋‹˜ ์„ ์‹œํ—˜ํ•ด

Test Suites: 48 passed, 48 total
Tests:       78 passed, 78 total
Snapshots:   73 passed, 73 total

ํ…Œ์ŠคํŠธ ์ค‘ ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋‹จ์ผ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์ด์ „ ๋Œ“๊ธ€์„ ์ฐธ์กฐํ•˜๊ณ 
๊ด€๋ จ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ. ๋ฆฌํฌํ„ฐ๋กœ ๋กœ๊ทธ๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ๋งŒ ์‹คํ–‰๋  ๋•Œ ์ด๊ฒƒ์ด ์ง„์งœ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

2018๋…„ 8์›” 8์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 7:08 jazoom [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

@willdurand https://github.com/willdurand ๊ธฐ์ž๋‹˜์„ ์‹œํ—˜ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š”
๋‚ด๊ฐ€ ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ํ•ด๋‹น ํŒŒ์ผ์„ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์ž˜๋ชปํ–ˆ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐ์ž๋กœ. ์ด๊ฒƒ์ด ๋งˆ์ง€๋ง‰์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•œ ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ:

ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ: 48๊ฐœ ํ†ต๊ณผ, ์ด 48๊ฐœ
ํ…Œ์ŠคํŠธ: 78๊ฐœ ํ†ต๊ณผ, ์ด 78๊ฐœ
์Šค๋ƒ…์ƒท: 73๊ฐœ ํ†ต๊ณผ, ์ด 73๊ฐœ

ํ…Œ์ŠคํŠธ ์ค‘ ๋ชจ๋“  ๋กœ๊ทธ๊ฐ€ ๊ณ„์† ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/facebook/jest/issues/4156#issuecomment-411582223 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AAi-gO9_uEJPO4xnhkpfGore_hEX81fUks5uO29bgaJpZM4OnBQQ
.

@jamietre 48๊ฐœ์˜ ์Šค์œ„ํŠธ๋ฅผ ์‹คํ–‰ํ•œ ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ๋ช…๋ น์— ๋Œ€ํ•ด ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ๋ช…๋ น์„ ๋‘ ๋ฒˆ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€ ๋ฆฌํฌํ„ฐ์™€์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ ๋งˆ์ง€๋ง‰์— ์ด ์š”์•ฝ์„ ์ธ์‡„ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Test Suites: 48 passed, 48 total
Tests:       78 passed, 78 total
Snapshots:   73 passed, 73 total

@jazoom ๋ฆฌํฌํ„ฐ๋Š” ๊ตฌ์„ฑ์— verbose: true ๊ฐ€ ์žˆ์œผ๋ฉด ์•„๋ฌด๋Ÿฐ ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. false ์„ค์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค.

@jamietre ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ํ…Œ์ŠคํŠธ ์‹คํ–‰์ด ์ฝ˜์†” ์ถœ๋ ฅ์„ ์บก์ฒ˜ํ•˜๊ฑฐ๋‚˜ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ด์ƒํ•œ ๋™์ž‘์ž…๋‹ˆ๋‹ค(https://github.com/facebook/jest/issues/6441).

jest๊ฐ€ ํ…Œ์ŠคํŠธ๋ณ„๋กœ ์ฝ˜์†” ์ถœ๋ ฅ์„ ๊ทธ๋ฃนํ™”ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(https://github.com/facebook/jest/issues/2080). ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ๋Š” ํŠน์ • ์‹คํŒจ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์ œํ’ˆ๊ตฐ(์˜ˆ: ํ…Œ์ŠคํŠธ ํŒŒ์ผ)์— ๋Œ€ํ•œ ์ถœ๋ ฅ๋งŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@jazoom ์€ ๋˜ํ•œ ๋ฆฌํฌํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•œ ํ›„

@kumar303 ์žฅํ™ฉํ•˜๊ฒŒ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค

"์™„์ „ํžˆ ๋‹ค์‹œ ์‹œ์ž‘"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? ์‹คํ–‰๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

"์™„์ „ํžˆ ๋‹ค์‹œ ์‹œ์ž‘"์ด๋ž€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๋‹น์‹ ์ด ๋†๋‹ด์˜ ๊ฐ์‹œ ๋ชจ๋“œ์— ์žˆ๋‹ค๋ฉด ๋‹น์‹ ์ด ์ข…๋ฃŒํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„. ์ €๋Š” ์‹œ๊ณ„ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„ ์˜ˆ, ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ˆˆ์น˜ ์ฑ„์ง€ ๋ชปํ–ˆ์ง€๋งŒ ์–ด๋–ค ์ด์œ ๋กœ Jest๋Š” ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋งจ ์•„๋ž˜์— ์ตœ์ข… ์š”์•ฝ์„ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ SummaryReporter ์•„๋‹ˆ๋ผ DefaultReporter ํ™•์žฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@willdurand ๋กœ๊ทธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆจ๊ธฐ๋Š” ๊ตฌ์„ฑ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ„ฐ๋ฏธ๋„์€ ๋” ์ด์ƒ ์ง€์›Œ์ง€์ง€ ์•Š์œผ๋ฉฐ(์ด์ „ ๋กœ๊ทธ) ๋ชจ๋“  ๋กœ๊ทธ๋Š” ๋‹ค๋ฅธ ๋กœ๊ทธ ์•„๋ž˜์— ์Œ“์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : DefaultReporter ํด๋ž˜์Šค๋ฅผ ๋‚ด๋ณด๋‚ด๊ธฐ๋งŒ ํ•˜๋ฉด ๊ธฐ๋ณธ ๋กœ๊น…์œผ๋กœ ๋Œ์•„๊ฐ€์ง€๋งŒ ๋กœ๊ทธ๋„ ์Šคํƒ๋ฉ๋‹ˆ๋‹ค.

@kumar303 / @willdurand์˜ FingersCrossedReporter๋กœ ์•ฝ๊ฐ„ ๋†€์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ํ…Œ์ŠคํŠธ๊ฐ€ ๋๋‚  ๋•Œ ํ…Œ์ŠคํŠธ ์š”์•ฝ์„ ์ธ์‡„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ (๋‚ด ์ƒ๊ฐ์—) ๊ธฐ๋ณธ Jest ์„ค์ •์ด DefaultReporter์™€ SummaryReporter๋ผ๋Š” ๋‘ ๊ฐœ์˜ ๋ฆฌํฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
์ด์ œ ๋‚ด jest-configuration์—์„œ SummaryReporter๋ฅผ ์ง์ ‘ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด๋ณด๋‚ด์ง€๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋‹ค์‹œ ๋‚ด๋ณด๋‚ด์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

//summary-reporter.js
const SummaryReporter = require('@jest/reporters/build/summary_reporter')
  .default;
module.exports = SummaryReporter;
//log-on-fail-reporter.js
Content: https://gist.github.com/GeeWee/71db0d9911b4a087e4b2486386168b05
Same as reporter above, but with updated import paths for the new jest structure

๋†๋‹ด ๊ตฌ์„ฑ

    "reporters": [
      "<rootDir>/src/test-reporters/log-on-fail-reporter.js",
      "<rootDir>/src/test-reporters/summary-reporter.js"
    ],

ํŽธ์ง‘: ์กฐ๊ธˆ ๊ฐ€์ง€๊ณ  ๋†€๊ณ  ๋‚˜๋ฉด ๋‹จ์ผ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋”๋ผ๋„ ์ „์ฒด ์„ค๋ช… ๋ธ”๋ก์— ๋Œ€ํ•ด ์ด ๋กœ๊ทธ๊ฐ€ ๊ธฐ๋ก๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

jest 25์˜ ๊ธฐ๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์›์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋˜ํ•œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

//summary-reporter.js
const {SummaryReporter} = require('@jest/reporters')
module.exports = SummaryReporter;

ํ•˜์ง€๋งŒ @jest/reporters/SummaryReporter ๋“ฑ์˜ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ค‘๊ฐ„ js ํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค... ์ด์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ์—ด๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

์ด ๊ธฐ๋Šฅ ์š”์ฒญ์ด ์ข…๋ฃŒ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด ๊ธฐ๋Šฅ์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋†๋‹ด์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ตฌ์„ฑ ์˜ต์…˜์œผ๋กœ.
@kumar303 ๋‹ค์‹œ ์—ด์–ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

@kumar303 ๋‹ค์‹œ ์—ด์–ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

ํ—ค. ์•„๋‹ˆ์š”, ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ์‡„์˜ ๊ทผ๊ฑฐ์˜€์Šต๋‹ˆ๋‹ค. https://github.com/facebook/jest/issues/4156#issuecomment -324638718 ๋‚˜๋Š” ์ด๊ฒƒ์ด ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ jest devs๊ฐ€ ๊ทธ๊ฒƒ ์—†์ด ์–ด๋–ป๊ฒŒ ์‚ด ์ˆ˜ ์žˆ๋Š”์ง€ ๋†€๋ž์ง€๋งŒ ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„ ๋กœ๊ทธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์—ด์–ด์ฃผ์„ธ์š”. ์ด๊ฒƒ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์•„์ง ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ƒ๊ฐ๋ณด๋‹ค ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ŠคํŠธ๋Š” ๊ฐ๊ฐ ์ตœ์†Œ ํ•œ ํŽ˜์ด์ง€์˜ ์ฝ˜์†” ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ด๋ฅผ ํ—ค๋งค๋Š” ๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๋Š” ๊ฒƒ ์™ธ์—๋Š” ์ด ํ–‰๋™์— ๋Œ€ํ•œ ์ง€์ง€๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ‘ ๋“ฑ์€ ๋œ ์œ ์šฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ์ตœ์„ ์ž…๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋ฅผ ๋”ฐ๋ž๊ณ  ์‚ฌ๋žŒ๋“ค์ด ์›ํ•˜๋Š” ๋กค์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ฃผ๊ธฐ๊ฐ€ ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ด๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ 3๋…„ ๋™์•ˆ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ด๊ฒƒ์ด ํ•„์š”ํ•œ๋ฐ๋„ ์ข€ ์ด์ƒํ•ฉ๋‹ˆ๋‹ค.

์ธํ„ฐ๋„ท์—์„œ ์ฐพ์€ ์Šค๋‹ˆํŽซ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด์— ๋Œ€ํ•œ ์ „์—ญ ๊ตฌ์„ฑ์„ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค. https://stackoverflow.com/questions/58936650/javascript-jest-how-to-show-logs-from-test-case-only-when-test-fails/61909588#61909588 ์ฐธ์กฐ

์ด๊ฒƒ์ด ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋น„๋™๊ธฐ ์บก์ฒ˜๋ฅผ ์œ„ํ•ด https://github.com/AtakamaLLC/capio ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์—ด์–ด ์„ ํƒ์  ๊ตฌ์„ฑ์œผ๋กœ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค.
PR์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ˜„์‹ค์ ์ธ ๊ธฐํšŒ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ง์ ‘ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ƒ๊ฐ์— ์ด "์ž‘์€" ๊ธฐ๋Šฅ ์š”์ฒญ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌํฌํ„ฐ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ง€์† ๋ถˆ๊ฐ€๋Šฅํ•œ ์œ ์ง€ ๊ด€๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ ์š”์ฒญ์€ "๊นจ๋—ํ•œ" ๊ฒƒ๋„ "์ผ๊ด€๋œ" ๊ฒƒ๋„ ์•„๋‹ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋งค์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰