Jest: рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рджрд┐рд╕ре░ 2016  ┬╖  236рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/jest

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдПрдХ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ console.log рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ jsdom рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг stdout рдкрд░ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ https://repl.it/languages/jest рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдФрд░ рдпрд╛ рддреЛ рдПрдХ repl.it рдбреЗрдореЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдпрд╛ рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо yarn install рдФрд░ yarn test ред

  1. рдХреНрд▓реЛрди https://github.com/udbhav/jest-test
  2. yarn test рдЪрд▓рд╛рдПрдБ
  3. рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ
  4. testEnvironment рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ node рдмрджрд▓реЗрдВ
  5. yarn test рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ
  6. рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╣рдореЗрд╢рд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛ред

рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рд╕рдЯреАрдХ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЬреЗрд╕реНрдЯ, рдиреЛрдб, рдпрд╛рд░реНрди/рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВред

рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рдореЗрдВ package.json рдФрд░ yarn.lock ред рдореИрдВ рдиреЛрдб 7.3.0 рдФрд░ рдпрд╛рд░реНрди 0.18.1 . рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдиреЛрдб v4.4.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореЗрд░рд╛ рд╕рдВрдмрдВрдз рд╣реИ - console.log рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдмрджрд▓реА рдЧрдИ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдХрдИ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд▓ рд░рд╣реА рдереАрдВ, рдФрд░ рдЕрдм рдХреЗрд╡рд▓ рдПрдХред рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ console.log рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рд╕рднреА 236 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмрд╕ repl.it рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛: https://repl.it/EwfT/0

рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдФрд░ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреЗрд╕реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 17.0.3 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЕрднреА рднреА рд╡рд╣реА рдореБрджреНрджреЗ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред рдиреЛрдб v6.9.2 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП nvm рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ hurray console.log jsdom рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдиреЛрдб v7 рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИред

рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ #2166 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ рдФрд░ рдиреЛрдб 6 рдкрд░ рднреА рд╣реЛрддрд╛ рд╣реИред

@thymikee рдпрд╣ #2166 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреИрд╕реЗ рд╣реИ? рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, console.log рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдиреЛрдб v4 рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЬ рдкрд╣рд▓реЗ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореЗрд░реЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ 0 рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдХреЛрдИ рдФрд░ console.log рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред

@thisissami рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЖрдкрдХрд╛ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдХреЛрдб рддрдм рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЬреЗрд╕реНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдиреЛрдб 4 рдФрд░ рдиреЛрдб 6 рдкрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓ рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рд╣рдо 7.3 рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@cpojer - рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд╕реЗ рдкрд╛рд╕/рдЕрд╕рдлрд▓ рд╣реИрдВ - рдХреЗрд╡рд▓ console.log рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдХреЗ рдЧреБрдг рдХреНрдпрд╛ рд╣реИрдВ console.log рдЗрд╕реЗ рдЖрдИрдПрдирдЬреА, рдФрд░ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдХрдИ console.log рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛрдбрд╝реЗ рд╣реИрдВ рдФрд░ рдЕрдм рдореЗрд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХреЛрдИ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред =/ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Jest v17 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрдЬ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдм рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдиреЗ рд╕реНрд╡рдпрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХреБрдЫ рддреЛрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рд╣рдордиреЗ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдХреЛрдИ рдЬреЗрд╕реНрдЯ рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдареАрдХ рд╣реИ, рддреЛ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрджрд▓реА рдЧрдИ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрд╕ рдХреЛрдб рдХреЗ рдмрд╛рдж рдПрдХ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реА рд╣реИ рдЬрд┐рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ (рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ)ред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдкрдбрд╝рддрд╛ рд╣реИред

@cpojer рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА

import React from 'react';
import {shallow} from 'enzyme';
import FundPercentage from '../../src/reactClasses/fund_percentage';

console.log('cmon');
describe('Normal Percentage', () => {
  console.log('do this');
  const percentage1 = shallow(
    <FundPercentage percentage={0.5}/>
  );
  const percentage2 = shallow(
    <FundPercentage percentage={0.26}/>
  );
  it('should work', () => {
    console.log(percentage1.childAt(0));
    expect(0).toBe(1);
  });
});

рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред package.json рдореЗрдВ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ:

  "jest": {
    "collectCoverageFrom": [
      "src/*.jsx"
    ]
  }

рдЬреЗрд╕реНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛, рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЭрдВрдбреЗ рдирд╣реАрдВ рд▓рдЧреЗред рдЬреЗрд╕реНрдЯ v17 рдФрд░ 18 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ред

рдореИрдВрдиреЗ рдкреВрд░реА рджреЛрдкрд╣рд░ рдореЗрдВ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИред рдореБрдЭреЗ рдЕрднреА рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ enzyme рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХреЛ stdout рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдХреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ expects рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж, console.logs рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрдм рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдФрд░ рдЕрдм рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ (рдЕрднреА-рдЕрднреА v17 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛), рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдиреЛрдб 7.3 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рд╕рд╣рд╛рдпрддрд╛ рдлрд╝реЛрд░рдо рдирд╣реАрдВ рд╣реИ; рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :)

рдореИрдВ рдиреЛрдб v4.4.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореЗрд░рд╛ рд╕рдВрдмрдВрдз рд╣реИ - console.log рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдмрджрд▓реА рдЧрдИ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдХрдИ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд▓ рд░рд╣реА рдереАрдВ, рдФрд░ рдЕрдм рдХреЗрд╡рд▓ рдПрдХред рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ console.log рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

@cpojer рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдПрдХ рдмрдЧ рд╣реИред

3 рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдЬреИрд╕рд╛ рдХрд┐ .test.js рд╕рд╛рде 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ 2 рдлрд╛рдЗрд▓реЗрдВ рдЖрдкрдХреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ) рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг (рдКрдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛) рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдХреЗрд╡рд▓ 1 рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдПрдХреЗрдП рдореБрдЭреЗ 2 рдлрд╛рдЗрд▓реЛрдВ рдкрд░ .test.js рд╕реЗ .teast.js рдирд╛рдо рдмрджрд▓рдХрд░) рдкрд░рд┐рдгрд╛рдо рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдПрдХ рджреВрд╕рд░рд╛ рдордирдорд╛рдирд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдореБрдЭреЗ рд╡рд╣ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЗрдореЛ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдХрд╣реАрдВ рдФрд░ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рдЬреЗрд╕реНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдиреЛрдб 4, рдиреЛрдб 6 рдФрд░ рдиреЛрдб 7.3 рдкрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИред рдпрд╣ 4 рдФрд░ 6 рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди 7.3 рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЗрд╕реЗ рдиреЛрдб 7.3 рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЬреЗрд╕реНрдЯ рдХреА рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛: https://github.com/facebook/jest/pull/2464

рдпрджрд┐ рдиреЛрдб 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЕрднреА рдЖрдЬрд╝рдорд╛рдирд╛ред

рдЗрди 3 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдХреНрдпрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╣реЛ рд░рд╣реА рд╣реИ, рд╕рд╛рде рд╣реА рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рднреА рд╣реИред рдЕрдЧрд░ рд╡рд╣ рдордЬрд╛рдХ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдРрд╕рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрдкрдиреЗ рд▓реЙрдЧ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

screen shot 2016-12-28 at 5 55 29 pm

рдпреЗ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Mercurial (hg) рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЖрдкрдХреЗ рд▓рд┐рдП рдФрд░ рдЬреИрд╕рд╛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ; рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдпрд╛ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдУрдХреЗ рдХреВрд▓ - рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЖрднрд╛рд╕ рд╣реИ рдХрд┐ рдЬрдм рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рддреЛ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдХреЗрд╡рд▓ 1 рд╣реА рд╣реЛ? рдпрджрд┐ рдЖрдкрдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ "рдУрд╣, рдпрд╣ рдХрднреА-рдХрднреА рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ" - рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рдореИрдВ рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо 2 рдлрд╛рдЗрд▓реЗрдВ рдЪрд▓ рд░рд╣реА рд╣реЛрдВред :)

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдерд╛)ред рдореИрдВ рдиреЛрдб 6.9.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ --forceExit рдзреНрд╡рдЬ рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ --forceExit рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ --forceExit рдзреНрд╡рдЬ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ @thisissami рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд▓реЙрдЧрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ gulpfile.js рдХреЗ рднреАрддрд░ рдЬреЗрд╕реНрдЯ-рдХреНрд▓реА (jest.runCLI) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдерд╛ рдФрд░ рдпрд╣ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рдЧрд▓ рд░рд╣рд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рд╕реАрдзреЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдЕрдм рдореБрдЭреЗ рдХреБрдЫ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдЕрднреА рддрдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред

1) рдЬреЗрд╕реНрдЯ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ
2) рдЬреЗрд╕реНрдЯ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ (рдпрд╣рд╛рдБ рдмреНрд▓рд┐рдВрдХ рди рдХрд░реЗрдВ)
3) рдЬреЗрд╕реНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдмреИрдХ рдЕрдк рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдХрднреА-рдХрднреА рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдХреБрдЫ рдФрд░ рдХрднреА-рдХрднреА рд╕рднреАред
4) рдЬреЗрд╕реНрдЯ рдЕрдЧрд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд▓рд╛рдЗрдиреЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред

рдордЬрд╝рд╛ v18.1.0

рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХрднреА-рдХрднреА рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

image

рдпрд╣ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ (рдЕрд╕рдлрд▓ рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░) рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдкрд░реАрдХреНрд╖рдг рдЖрдЙрдЯрдкреБрдЯ рд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдзрд┐рдХ:

image

рдФрд░ рдХрднреА-рдХрднреА рдпрджрд┐ рдореИрдВ Ctrl + c рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдЬреЛ рдореИрдВ рдирд╣реАрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ
рдЬреЗрд╕реНрдЯ: 17.0.1
рдиреЛрдб: 6.6.0
рдПрдирдкреАрдПрдо: 3.10.3
рдореИрдХреЛрдЬрд╝: 10.12.2
рдЯрд░реНрдорд┐рдирд▓: 2.7.1 (рдФрд░ iTerm2 3.0.13 рдореЗрдВ рднреА)
рд╕реНрдХреНрд░рд┐рдкреНрдЯ ( package.json ): jest /src/main/js --watch рдпрд╛ jest /src/main/js --coverage рдпрд╛ jest --watch --onlyChanged рд╕рднреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╛рди рд╣реИред

@davidgilbertson рдХреНрдпрд╛ рдпрд╣ v18.1 рдкрд░ рд╣реЛрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ 18.1.0 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдФрд░ рднреА рдЫреЛрдЯрд╛ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ:

image

рдореИрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рдЪреБрди рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреЛ рд╣реБрдИ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдПрдХ рдШрдЯрдХ рдореЗрдВ console.warn('----------------') рд╣реИред)

  • рдЕрдЧрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рдиреАрдЪреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдКрдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ (рддрд╛рдХрд┐ рдпрд╣ рдСрдЯреЛ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП) рддреЛ рдореИрдВ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдЬрдм рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдмреИрдХ рдЕрдк рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрдВрд╕реЛрд▓.рд╡рд╛рд░реНрди рд▓рд╛рдЗрди рдЪрд▓реА рдЬрд╛рддреА рд╣реИ (рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд)ред
  • рдЕрдЧрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рд╕реАрдзреЗ ctrl + c рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рд╡реЗ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
  • рдЬрдм рдореИрдВ рдПрдХ рдмрд╛рд░ jest /src/main/js --watch рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП a рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ src/main/assets/legacy рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдкрд░реАрдХреНрд╖рдг рдЙрдард╛рддрд╛ рд╣реИ - рдЧреНрд▓реЛрдм рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред
  • рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╣реА рдЕрдЧрд░ рдореИрдВ рд╕рд┐рд░реНрдл jest --watch рдЪрд▓рд╛рддрд╛ рд╣реВрдВ (рдореЗрд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг .test.js рдпрд╛ .test.jsx рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдореЛрдб рдореЗрдВ 'рдП' рдХреЛ рд╣рд┐рдЯ рдХрд░рдирд╛ рд╣рд░ рдЬрдЧрд╣ рджреЗрдЦрдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ src/test/js/spec/categoryselector/spec.js рдирд╛рдордХ рдПрдХ рдкреБрд░рд╛рдирд╛ рдЬреИрд╕реНрдореАрди рдкрд░реАрдХреНрд╖рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Enter рдорд╛рд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЬреЛ рдЙрдореНрдореАрдж рд╣реИ рд╡рд╣ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдкрддрд╛ рдкреНрд░реЙрдкреНрд╕ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВ? рдореБрдЭреЗ рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ ctrl+c рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (jest 19.0.1, рдиреЛрдб 5.12)ред рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрд╕реА рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдбрд┐рдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдлреНрд▓реИрдЧ --runInBand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдХрд░ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдХрд┐рд╕реА рдиреЗ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

bail рдзреНрд╡рдЬ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдХреЛ рдкреНрд░рд┐рдВрдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рдореИ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдереЛрдбрд╝реА рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдкрд░ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдореИрдВрдиреЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд╣рд╛рдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдкрд░реАрдХреНрд╖рдг рдХреА рдЧрдИ рдЗрдХрд╛рдИ рдореЗрдВ, рдЖрджрд┐ рдХрд╛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ)ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЭрдВрдбреЗ рдХреЗ рдиреАрдЪреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ рд╣реИред рдорд╛рдирдХ рд▓реЗрдЖрдЙрдЯ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреЗ рдмрд╛рдж, рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред

рдЗрд╕рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред --bail рдзреНрд╡рдЬ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ (рдЕрдкрдорд╛рдирдЬрдирдХ рдПрдХ рд╡реИрд╕реЗ рднреА рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЦрд┐рд░реА рд╣реИ), рдФрд░ --runInBands рдореЗрдВ рдХреЛрдИ рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп рдЕрдВрддрд░ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдЬреЗрд╕реНрдЯ рдЕрджреНрдпрддрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореИрдВ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдЕрджреНрдпрддрди рд▓рд╛рдЗрди рдирдВрдмрд░ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди/рдЕрд╕рдВрднрд╡ рд╣реИ (рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ) рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдПрдХ TypeError рдерд╛ (рдПрдХ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдВрдЪрдирд╛)ред рдореБрдЭреЗ рдЬреЛ рдЧреБрдорд░рд╛рд╣ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдкрд░ рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рджреЗрдЦрд╛, рдЬрд┐рд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рддреЛ рдЯреНрд░реЗрд╕ рджреЗрдЦрдирд╛ рд▓реЗрдХрд┐рди рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдХрд╛рдлреА рдЬреЛрдбрд╝ рдирд╣реАрдВ рдерд╛ :) рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ? (рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдорддрд▓рдм рд▓реЙрдЧ рд╣реИ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдВрджреБ рддрдХ рд╣реБрдЖ рд╣реИ, рдореЗрд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рдж рд▓реЙрдЧ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ :))

рдореЗрд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ verbose: true рдЬреЗрд╕реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ package.json ред рдЗрд╕реЗ рдЕрд╕рддреНрдп рдореЗрдВ рдмрджрд▓рдирд╛ (рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛рдирд╛) рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рдореЗрд░реЗ рд╕рднреА рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдЕрдм рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

рдпрд╣ 18.1 рдореЗрдВ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдордЬрд╝рд╛рдХ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ mock-browser рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдпрд╣ global рдХреЛ рдЕрдкрдиреА рд╡рд╕реНрддреБ рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

package.json (рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧ)

"jest": {
    "testEnvironment": "node",
    "moduleFileExtensions": [
        "js",
        "json"
    ],
    "moduleDirectories": [
        "node_modules",
        "src"
    ],
    "transform": {
        "^.+\\.js$": "babel-jest"
    },
    "roots": [
        "<rootDir>/__test__"
    ],
    "setupFiles": [
        "<rootDir>/__test__/test-setup.js"
    ],
    "moduleNameMapper": {
        "client": "<rootDir>/src/client",
        "common": "<rootDir>/src/common",
        "server": "<rootDir>/src/server",
        "!CONFIG": "<rootDir>/config/env/test.js",
        "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/file.js",
        "\\.(css|less)$": "identity-obj-proxy"
    }
}

рдЯреЗрд╕реНрдЯ-рд╕реЗрдЯрдЕрдк.рдЬреЗрдПрд╕

const mockBrowser = require('mock-browser').mocks.MockBrowser;

const MockBrowser = new mockBrowser();
global.APP_CONFIG = require('!CONFIG').default;

global.__DEVELOPMENT__ = false;
global.__TESTING__ = true;
global.__PRODUCTION__ = false;
global.document = MockBrowser.createDocument();
global.window = MockBrowser.createWindow();
global.localStorage = MockBrowser.getLocalStorage();

рдЯреЗрд╕реНрдЯ-рд╕реЗрдЯрдЕрдк.рдЬреЗрдПрд╕
mock-browser рдмрд┐рдЯреНрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реБрдП...

// const mockBrowser = require('mock-browser').mocks.MockBrowser;

// const MockBrowser = new mockBrowser();
global.APP_CONFIG = require('!CONFIG').default;

global.__DEVELOPMENT__ = false;
global.__TESTING__ = true;
global.__PRODUCTION__ = false;
// global.document = MockBrowser.createDocument();
// global.window = MockBrowser.createWindow();
// global.localStorage = MockBrowser.getLocalStorage();

console.log рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рд╣реИ? рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ #2166 . рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИ

рдореИрдВ рдЕрдкрдирд╛ $0.02 рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрднреА рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рд╣реВрдВред

рдореБрджреНрджрд╛:

  • рдореИрдВ jest --watch --verbose (v19.0.2) рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ
  • рдХреБрдЫ (рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ!) console.log рдХрдерди рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рди рд╣реА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдпрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ
  • рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ _.reduce рдХреЙрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╕рднреА console.log рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд╣реАрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ , рдХрдо рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд╣рд░ console.log рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ ред рдореИрдВрдиреЗ рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ (рдХрд╡рд░реЗрдЬ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо) рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд░реЗрдбреНрдпреВрд╕рд░ рдмреЙрдбреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЛрдб рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рднреА рдПрд╕рд┐рдВрдХ/рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭ рд╕рдХрддрд╛ рдХрд┐ рдХрдо рдХреЙрд▓ рдХреБрдЫ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХреНрдпреЛрдВ рдХрд░реЗрдЧреАред
  • рдЕрдЧрд░ рдореИрдВ --runInBand рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕рднреА console.log рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
  • рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд┐рдЫрд▓реА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдореИрдВ "testEnvironment": "node" рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рди рдХрд┐ jsdom

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИрдВ:

https://github.com/facebook/jest/issues/2441#issuecomment -273643521
https://github.com/facebook/jest/issues/2441#issuecomment -278202180

рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЦреАрдВрдЪреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВред

рдмрд╕ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдХрд┐ console.log рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЦреАрдВрдЪреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ~0.2s рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

--watch рдмрд┐рдирд╛ --verbose рдЪрд▓рд╛рдирд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рд░реЗрдкреНрд░реЛ рдХреЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ 10 рдорд┐рдирдЯ рдмрд┐рддрд╛рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрд╣ рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдмрдбрд╝реЗ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ,> 1) рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред

рдЖрдк рдпрд╣рд╛рдВ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ . рд╕реЗ рдкрд╣рд▓реЗ
    screen shot 2017-03-29 at 3 38 51 pm

  • рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ - рдПрдХ рджреВрд╕рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (<0.2s)
    screen shot 2017-03-29 at 3 39 34 pm

  • рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдКрдкрд░ рдкреЗрдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж
    screen shot 2017-03-29 at 3 39 47 pm

рдпрд╣ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдордЬрд╛рдХ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╣реИ рдФрд░ рдЕрдм рдпрд╣...

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЬреЗрд╕реНрдЯ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЖрдкрдХреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рддрд░рд╣ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рди рд╣реЛ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реЗ рд╣рд░ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рди рдХрд░ рд╕рдХреЗрдВред

рдЖрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? рдЕрдЧрд░ рдореБрдЭреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдкрд╣рд┐рдпреЗ рдЪрд╛рд╣рд┐рдП рддреЛ рдореИрдВ рдХреЛрдгреАрдп 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛!

рдпрд╣ рдХрд╛рдлреА рдЖрдХреНрд░рд╛рдордХ @halis рд╣реИред рд╣рдо рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рдкрд░реАрдХреНрд╖рдг рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рддреЗ рдереЗред рдпрджрд┐ рдЖрдк --verbose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдмрдлрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЖрдк рдЬреЗрд╕реНрдЯ рдХреЛ рдкреАрдЖрд░ рднреЗрдЬрдХрд░ рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдХреЗ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ, рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдореЗрд░рд╛ рджрд┐рди рдмрд╣реБрдд рдЦрд░рд╛рдм рд░рд╣рд╛ рдФрд░ рдореИрдВ рдирд┐рд░рд╛рд╢ рдерд╛ред рдЗрд╕реЗ рдЖрдк рдкрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ, рдЖрдк рдмрд╕ рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ --verbose рдзреНрд╡рдЬ рдорд┐рд▓рд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдпрд╛ред

рдлрд┐рд░, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдПрдХ рджрдо рдмрдврд╝рд┐рдпрд╛ред JavaScript рдЯреВрд▓ рдХреЛ рдЕрдкрдиреЗ рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдмрд░реНрдмрд╛рдж рди рдХрд░рдиреЗ рджреЗрдВ

рдЗрд╕ рдкрд░ рдХреЛрдИ рднреА рд╕рдорд╛рдЪрд╛рд░? рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреИрд╕реЗ рджрд┐рдЦрд╛рдПрдВ?

рдмрд╣реБрдд рд╣реА рд░реЛрдЪрдХ рд╡реНрдпрд╡рд╣рд╛рд░, рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рджреЛ рдмрд╛рд░ рдорд╛рд░рдиреЗ рдХреЗ рдмрд╛рдж (рдХрдИ рдмрд╛рд░ рдХреА рддрд░рд╣) рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ --verbose рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдореБрджреНрд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдЕрдкрд░рд╛рдзреА рд╣реИред
рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди package.json рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдирд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдмреЛрдЬрд╝ рдлреНрд▓реИрдЧ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдЫ рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВрдЧреЗ рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдареАрдХ рдХрд░ рджреЗрдВ

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ .. рдкреБрд░рд╛рдирд╛ рд╕реНрдХреВрд▓ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓/рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП --runInBand рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдПред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ ... рдПрдХ рд╡рд┐рдХрд▓реНрдк 'рдбрдореА' рд░рд┐рдкреЛрд░реНрдЯрд░ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдлреИрдВрд╕реА рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдореЛрдЪрд╛ рдХреА рддрд░рд╣ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯрд░ рдЪреБрдирдиреЗ рджреЗрдВред

рдпрд╣ рд▓реЙрдЧ рди рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рднреА рдмрджрддрд░ рд╣реИ:

рдЕрдЧрд░ рдореБрдЭреЗ рдПрд╕рд┐рдВрдХ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рд╣реИ, рддреЛ рди рдХреЗрд╡рд▓ рдореБрдЭреЗ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ expect рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдЫрд┐рдкреА рд╣реБрдИ рд╣реИрдВ, рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд┐рдЧрд▓ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

test('async', (done) => { setTimeout((() => { expect(1).toEqual(2); throw new Error(); done(); }), 1000); });

рдореЗрд░рд╛ expect рдкрд░реАрдХреНрд╖рдг рдХрд╣реАрдВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

````
рдЯрд╛рдЗрдордЖрдЙрдЯ - рдЬреИрд╕реНрдореАрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рднреАрддрд░ Async рдХреЙрд▓рдмреИрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛редDEFAULT_TIMEOUT_INTERVALред

  at Timeout.callback [as _onTimeout] (../../../../../../../../usr/local/lib/node_modules/jest/node_modules/jsdom/lib/jsdom/browser/Window.js:523:19)
  at ontimeout (timers.js:386:14)
  at tryOnTimeout (timers.js:250:5)
  at Timer.listOnTimeout (timers.js:214:5)

````

рди рддреЛ runInBand рдФрд░ рди рд╣реА verbose:false рд╕рд╣рд╛рдпрддрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдореВрд▓реА рд╕рд░рд▓ ( babel-jest ) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред

@richburdon done рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ async рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ done.fail() рд╕рд╛рде рд╡рд┐рдлрд▓ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

@thymikee рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░/рдпрд╛ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

test('async', (done) => { setTimeout((() => { expect(1).toEqual(2); throw new Error(); done(); }), 1000); });

test('async', (done) => {
  setTimeout((() => {
    expect(1).toEqual(2);
    try {
      throw new Error();
    } catch (error) {
      done.fail(error);
    }
    done();
  }), 1000);
});

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХрд┐ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдкрд░реАрдХреНрд╖рдг рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд╛рджрд╛ рджреЗрддрд╛ рд╣реИ ред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕реЗ https://github.com/facebook/jest/issues/2136 рдпрд╛ https://github.com/facebook/jest/issues/2059ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреАрдЖрд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдФрд░ рдЙрд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╣реАрдВ рдФрд░ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@thymikee , рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ setTimeout рдореЗрдВ рд╡рд╛рджреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдордЬрд╛рдХ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ ...

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдХрд┐ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:

````
рдкрд░реАрдХреНрд╖рдг ('async', (рдХрд┐рдпрд╛ рдЧрдпрд╛) => {
рдлрдВрдХреНрд╢рди рдлреВ () {
рд╡рд╛рдкрд╕реА рд╡рд╛рджрд╛.рд╕рдВрдХрд▓реНрдк(1);
}

рдлреВ ()ред рддрдм (рдорд╛рди => {
рдЙрдореНрдореАрдж (рдореВрд▓реНрдп)ред рдмрд░рд╛рдмрд░ (2); // рдХрднреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ; рдмрд╕ рд╕рдордп рд╕рдорд╛рдкреНрддред
рдХрд┐рдпрд╛ рд╣реБрдЖ();
});
});
````

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреЛ expect рдХреЙрд▓ (рдпрд╛рдиреА, рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХрд╛ рд╣реА рд╣рд┐рд╕реНрд╕рд╛) рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХрд╛рдлреА рдЙрд▓рдЭрд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИ?

рддреЛ, рдмрд╕ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдХреИрдЪ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рд╡рд╛рджреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - expect рдХреЙрд▓ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЕрдиреНрдпрдерд╛ рд╣реЛрдЧрд╛: рдП) рдЯрд╛рдЗрдордЖрдЙрдЯ; рдмреА) рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рди рдХрд░реЗрдВред

рдЬрдм рддрдХ рдореИрдВ рдПрдХ рдЕрд▓рдЧ рдЧрд▓рддреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

рдП)ред рд╢рд╛рдпрдж рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░реЗрдВ (https://facebook.github.io/jest/docs/asynchronous.html#content)?

рдмреА)ред рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдФрд░/рдпрд╛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рдореБрдЭреЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдпрд╣ v19 рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
V20.0.3 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЙрдЯрдкреБрдЯ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА --runInBand рдпрд╛ --verbose , рд▓реЗрдХрд┐рди рдорджрдж рдирд╣реАрдВ рдХреАред

рдХреГрдкрдпрд╛ рдиреЛрдбрдЬ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдпрд╣ рдиреЛрдб ~7.3 рдореЗрдВ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред

@thymikee рддреЛ рдХреНрдпрд╛ рд╡реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВрдиреЗ рд╕реВрд░рдЬ рдХреЗ рдиреАрдЪреЗ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдЕрднреА рднреА рдХреЛрдИ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЬреЗрд╕реНрдЯ рдХреЗ рдкреНрд░рджрддреНрдд рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ ts-jest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЙрдирдХреЗ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реЛ?

@cpojer @lsentkiewicz рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ @cpojer рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдиреЛрдб рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред

@marcusjwhelan
рдореЗрд░реЗ рд▓рд┐рдП v7.10.0 . рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

jest --bail рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдЕрднреА рднреА рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдЧрд▓ рд░рд╣рд╛ рд╣реВрдВред

@cpojer v8.0.0 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдиреЛрдб 8.0.0 . рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЦрд░рд╛рдм рдмрдЧ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реЛрдирд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо 6.0 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдиреЛрдбрдЬ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рдпрд╣ 7.0 рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреЛрдб рдХреЗ рдХрдо рд╕реЗ рдХрдо рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХрдо рд╕реЗ рдХрдо 5 рд╕рд╛рд▓ рдХрд╛ рд╕рдорд░реНрдерди? @cpojer @taion

рдпрд╣ рдХреЗрд╡рд▓ рдиреЛрдб 7.3 рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЦрд░рд╛рдм рдмрджрд▓рд╛рд╡ рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ 7.4 рдпрд╛ 7.5 рдкрд░ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ред

рд▓реЛрдЧ рдореБрдЭреЗ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдиреЛрдб 8 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИ рдФрд░ рдпрд╣ рдкрд╛рд╕ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧ рдЬреЗрд╕реНрдЯ 20 рдФрд░ рдиреЛрдб 8 рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдЪрд┐рдд рд░реЗрдкреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрдирд╛рдПрдВред

@cpojer рдореБрдЭреЗ рдЗрд╕ рд╕реЗрдЯрдЕрдк (macOS) рдХреЗ рд╕рд╛рде рдХреЛрдИ рджреЗ рд░рд╣рд╛ рд╣реИ:

$ node --version
v7.4.0

рдлрд╝рд╛рдЗрд▓реЗрдВ

package.json :

{
  "dependencies": {
    "@types/jest": "19.2.4",
    "jest": "20.0.4",
    "ts-jest": "20.0.6",
    "typescript": "2.3.4"
  }
}

__tests__/jestconfig.json :

{
  "rootDir": "../",
  "globals": {
    "__TS_CONFIG__": {}

  },
  "moduleFileExtensions": [
    "ts",
    "tsx",
    "js",
    "jsx",
    "json"
  ],
  "transform": {
    "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
  },
  "testRegex": "__tests__/.*test_.*\\.(ts|tsx|js)$"

__tests__/test_foo.ts :

import {} from 'jest';

console.log('CONSOLE before test');
test('fail', () => {
  console.log('CONSOLE inside test');
  expect(true).toEqual(false);
  console.log('CONSOLE end of test');
})

__tests__/test_bar.js :

console.log('BAR CONSOLE before test');
test('fail', () => {
  console.log('BAR CONSOLE inside test');
  expect(true).toEqual(false);
  console.log('BAR CONSOLE end of test');
})

рдЙрддреНрдкрд╛рджрди

$ jest -c __tests__/jestconfig.json 
 FAIL  __tests__/test_foo.ts
  тЧП fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous> (__tests__/test_foo.ts:6:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

 FAIL  __tests__/test_bar.js
  тЧП fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous>.test (__tests__/test_bar.js:4:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

Test Suites: 2 failed, 2 total
Tests:       2 failed, 2 total
Snapshots:   0 total
Time:        1.379s
Ran all test suites.

рдПрдХрд▓ рдЬреЗрдПрд╕ рдкрд░реАрдХреНрд╖рдг:

$ jest -c __tests__/jestconfig.json __tests__/test_bar.js 
 FAIL  __tests__/test_bar.js
  тЧП fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous>.test (__tests__/test_bar.js:4:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

  тЬХ fail (7ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.596s, estimated 1s
Ran all test suites matching "__tests__/test_bar.js".

рдПрдХрд▓ рдЯреАрдПрд╕ рдкрд░реАрдХреНрд╖рдг:

$ jest -c __tests__/jestconfig.json __tests__/test_foo.ts 
 FAIL  __tests__/test_foo.ts
  тЧП fail

    expect(received).toEqual(expected)

    Expected value to equal:
      false
    Received:
      true

      at Object.<anonymous> (__tests__/test_foo.ts:6:16)
      at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)

  тЬХ fail (116ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        1.27s
Ran all test suites matching "__tests__/test_foo.ts".

рдиреЛрдб v8.1.2 рдХреЗ рд╕рд╛рде рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛ред рдореИрдВрдиреЗ рдиреЛрдб v7.10.0 рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рд╡рд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛

рдПрдХ рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЬреЗрд╕реНрдЯ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕реНрдореАрди рдХреЗ рд╕рд╛рде whatwg-fetch , Node.js рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдмреИрдмреЗрд▓ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓реЗрд╢рди рдХреЗ рд╕рд╛рде HTTP рдХреЙрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреБрд▓ рдЦреЛрдЬ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕ рд╕рдордп рдЬреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЖрдк рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ-рдирд╣реАрдВ рдерд╛ред Node.js 7.10 рдФрд░ Jest 20.0.4 рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред

рдЕрдВрдд рдореЗрдВ рдореИрдВ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдкрд░ xmlhttprequest рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ рдФрд░ рдирдХрд▓реА рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ nock рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреИрд╕реНрдореАрди рдФрд░ Node.js рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рд╕рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдХреАрдбрд╝реЗ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдФрд░ рдареАрдХ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ P0 рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХреЛ рднреА рдЬреЗрд╕реНрдЯ рдХреЛ рдХрд┐рд╕реА рднреА рд░рд┐рдПрдХреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред

рдореИрдВ рдПрдХ рд╣реА (рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо console.log рдЕрдзрд┐рд▓реЗрдЦрд┐рдд) рдЬреЗрд╕реНрдЯ 19.0.2 рдФрд░ рдиреЛрдб 7.10.0 рдкрд░ @davidgilbertson рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА рдЬрдм рдЪрд▓ jest --verbose ред рдореБрдЭреЗ рдХреНрдпрд╛ рдорджрдж рдорд┐рд▓реА: jest --verbose --runInBand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдиреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ (рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо, рдлрд┐рд░ рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ)ред

@cpojer @thymikee рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ

@iffy , рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ
рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╕реЗ рдиреАрдЪреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдореНрдореАрдж рдлреЗрдВрдХрддрд╛ рд╣реИред

@thymikee рдХрд┐рдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╣реА рдореЛрдЪрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ - рдЗрд╕рд▓рд┐рдП рдЯреНрд░рд╛рдЗрдПрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ)

рдореЗрд░реЗ рдкрд╛рд╕ рднреА рдпрд╣ рдореБрджреНрджрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рдм рдзрд╛рдЧрд╛ рдкрдврд╝рдиреЗ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдЕрдкрдиреЗ рдРрдк рдкрд░ jest рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА console.log рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдлрд┐рд░ рдореИрдВрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП winston рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП winston рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛, рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛!

рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд▓реЛрдЧ рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВред рдореЗрд░реА logger.js рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

'use strict';

const winston = require('winston');

const customColors = {
  trace: 'white',
  debug: 'blue',
  info: 'green',
  warn: 'yellow',
  crit: 'red',
  error: 'red'
};

let config = {
  colors: customColors,

  levels: {
    trace: 0,
    debug: 1,
    info: 2,
    warn: 3,
    crit: 4,
    error: 5
  },
  transports: [
  ]
};

config.transports.push(
  new(winston.transports.Console)({
    name: 'consoleLogger',
    level: 'error',
    colorize: true,
    timestamp: true
  })
);

const logger = new (winston.Logger)(config);
winston.addColors(customColors);

module.exports = logger;

рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрд╕ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

let log = require('./logger.js');
log.debug('some log here!');

рд╡рд┐рдВрд╕реНрдЯрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ process.stdout.write рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬреЗрд╕реНрдЯ рдореЗрдВ рдЗрд╕ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдиреЛрдб рдХреЗ util рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред

@eranimo @Daymannovaes рдмрдЧ рдХреЛ рджреЗрдЦреЗрдВ #3853

рд╡рд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд╣рддреА рд╣реИ рдХрд┐ рдпрд╣ 8.1.2 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЛрдЪрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рдЪреБрдХрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЦрд░рд╛рдм рдмрдЧ рдерд╛ред

рдХреНрдпрд╛ рдЗрд╕ рдмрдЧ рдХреЛ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╡рд╣ рд╣реИ рддреЛ рдореБрдЭреЗ рдХрд╣рд╛рдВ рдорд┐рд▓реЗрдЧрд╛?

рдореИрдВ рдиреЛрдб рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ) рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓реЙрдЧрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдореЛрдЪрд╛ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд▓реЙрдЧрд░ рдЙрдкрдпреЛрдЧ рдкреНрд░рдпреЛрдЧ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдХреГрдкрдпрд╛ ASAP рдХреЛ рдареАрдХ рдХрд░реЗрдВ, рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдЕрддреНрдпрдВрдд рд╕рд╣рд╛рдпрдХ рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ 19.0.2 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдиреЛрдб рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред :100:

рдпрд╣ Node.js v7.10 рд╕реЗ v8.1 рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореБрдЭрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

7.4.0 -> 8.2.1 рд╕реЗ рдиреЛрдб рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд

рдЗрд╕реЗ рдиреЛрдб v8.4.0 рдФрд░ рдЬреЗрд╕реНрдЯ 21.0.0-рдмреАрдЯрд╛.1 рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред

test.only рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╕ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ --testPathPattern file рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдЕрдЧрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрдВрддрд┐рдо рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ await Promise.delay(100) рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдпрд╛ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдЬреЗрд╕реНрдЯ рдХреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкрд░ рд▓рд╛рдиреЗ рдХрд╛ рдЙрдирдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдореИрдВ рд▓реВрдк рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛?

@nharrisanalyst --verbose рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдкрд╛рд╕ рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореЗрд░рд╛ рд▓реВрдк рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдбрд┐рдмрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рди рддреЛ рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рди рд╣реА рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд▓реВрдк рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддрд╛ рд╣реИред

рдЬреЗрд╕реНрдЯ рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓-рдЖрдИрдПрдирдЬреА рдХреЛ рдЦрд╛рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдореИрдВ setupFiles , setupTestFrameworkScriptFile , рдпрд╛ beforeAll рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдорд╛рдВрдЧрддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рд▓рд╛рдЗрди рдЭрдВрдбреЗред "verbose": true рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд╣реЛрддрд╛ рд╣реИ

рдХрдВрд╕реЛрд▓ рдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ред рд▓реЙрдЧ () рдЬреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдЖрд╡рд╢реНрдпрдХрддрд╛ --verbose рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реА рд╣реИред

рдпрджрд┐ рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ() рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп)ред
рдпрджрд┐ рдЬреЗрд╕реНрдЯ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдЕрдкреЗрдХреНрд╖рд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдХреЗрд╡рд▓ 1 рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдБред рд╣рд╛рдБ...рдмрд┐рд▓реНрдХреБрд▓ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд▓рд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрдЦреЗрдВред
  • --maxWorkers=1 рдзреНрд╡рдЬ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдХрд┐рд╕реА рддрд░рд╣, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди (*) рд╣реИ...рдЬреЗрд╕реНрдЯ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдкрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЛ рдмрдлрд░ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди (*) рдПрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХреЗрдВ "рдХреНрдпреЛрдВ рдореЗрд░рд╛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ() рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ ... рдХрднреА-рдХрднреА"ред

рдареАрдХ рд╣реИ рддреЛ рдпрд╣ рдЖрдЬ рднреА рдореЗрд░реЗ рд╕рд╣рд┐рдд рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рдд рдмрдиреА рд░рд╣реЗрдЧреАред

рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ, рдЬреЗрд╕реНрдЯ рд▓реЙрдЧ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЙрдЧ рдирд┐рдЧрд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ verbose: true рдФрд░ bail: false рдХрд┐рдпрд╛ рд╣реИред рдЬреЗрд╕реНрдЯ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ рдФрд░ рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рд▓реЙрдЧ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЕрдиреБрдХреВрд▓ рд╣реИред рдореИрдВрдиреЗ --runInBand рднреА рдЪрд▓рд╛рдпрд╛, рдЬреЛ --maxWorkers=1 рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реА рд╣реИред

рд╕рдмрд╕реЗ рдмрдбрд╝реА рдорджрдж bail: false рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рддрдХ рдЪрд▓рдиреЗ рджрд┐рдпрд╛ред рдпрд╣ рдЕрднреА рднреА рдХреЛрдб 1 рдмрд╛рд╣рд░ рдирд┐рдХрд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рд▓реЙрдЧ рдлрд┐рд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдиреЛрдб v8.1.4 рдХреЗ рд╕рд╛рде рдЬреЗрд╕реНрдЯ v19.0.2 рдЪрд▓ рд░рд╣рд╛ рд╣реИред

--verbose --testPathPattern=<path/to/file> рдЪрд▓рд╛рдиреЗ рд╕реЗ рд▓реЙрдЧ рдкреНрд░рд┐рдВрдЯ рд╣реЛрдиреЗ рд▓рдЧреЗред рдирд╣реАрдВ рддреЛ рдирд┐рдЧрд▓ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдЫреЛрдЯрд╛ рдкреНрд░рдЬрдирди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЬреЗрд╕реНрдЯ 21.2.0 рдФрд░ рд╡рд░реНрддрдорд╛рди рдиреЛрдбреНрд╕ (рдЗрд╕рд▓рд┐рдП 4.8.4, 6.11.4 рдпрд╛ 8.7.0) рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

verbose рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 7.4.0 рд╕реЗ 8.0.0 рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣реА рдореЗрд░реЗ рдЕрд╡рд▓реЛрдХрди рд╣реИрдВред

[email protected] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпрд╣ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ! рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдФрд░ рдЕрднреА рднреА рдЬреЗрд╕реНрдЯ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдорд┐рд▓рд╛ рд╣реИ! рдпрджрд┐ рдЖрдк рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЬреЗрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрдмреЛрдЬрд╝ рд╕рд╛рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд╕реЗ рдЖрдкрдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред рд▓реЙрдЧред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдб рдХрд╛ рдХреБрдЫ рдЯреБрдХрдбрд╝рд╛ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрд╕рдВрдЧрддрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП expect(<value>).toEqual("someImpossibleValue") рд╕рд╛рде bail: false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрдм рдмрд╕ рдХреБрдЫ рдЯреВрдЯрд╛ рд╣реБрдЖ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджрд╛...

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЕрдиреБрдорд╛рди () рдлрд╝рдВрдХреНрд╢рди рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ (), рд▓реЗрдХрд┐рди рдЬрдорд╛рдирдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

v 22.0.4 рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдХреЛрдИ рдХрдВрд╕реЛрд▓ рдирд╣реАрдВ

@mvolkmann рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдЧреИрд░-рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдЬреЗрд╕реНрдЯ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рддреЛ рдмрджрд▓рд╛рд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╣рдЬ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдЬреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рд╡реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдЬрдм рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬ рд╣реИред

(рдиреЛрдб v9.3.0 рдФрд░ рдЬреЗрд╕реНрдЯ v20.0.4 рдпрд╣рд╛рдБ)

jest ^21.2.1 рдФрд░ node 8.9.4

рдЬреЗрд╕реНрдЯ рдЕрднреА рднреА рдХрднреА-рдХрднреА рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ, --verbose рд╡рд┐рдХрд▓реНрдк рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@fega рдЪреВрдВрдХрд┐ рдХрд┐рд╕реА рдиреЗ рдкреНрд░рдЬрдирди рдХрд╛ рдорд╛рдорд▓рд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

$ jest --verbose

рдпрд╣ рдЖрджреЗрд╢ рд╕рднреА рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдПрдЧрд╛

@odykyi рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдордЬрд╝рд╛рдХ 22.1.0 рдФрд░ v8.9.4

рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ред рдЕрдЧрд░ рдореИрдВ verbose рд╕реЗ false рд╣реВрдВ рддреЛ рдореЗрд░реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкреНрд░рд┐рдВрдЯ рд╣реЛ рдЧрдП рдереЗред

[email protected] , [email protected] рдкрд░ , рдФрд░ --forceExit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рд╕реЗ console.log рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ verbose false рдпрд╛ --forceExit рдзреНрд╡рдЬ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдЬрд┐рд╕реЗ рдореИрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред

[email protected] , [email protected] рдкрд░ , рдФрд░ --forceExit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдореБрдЭреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рд╕реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдмреЛрдЬрд╝ рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рдпрд╛ --forceExit рдзреНрд╡рдЬ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рджреЗрддрд╛ (рдЬреЛ рдореИрдВ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)ред

рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрдирд╛ рдЬреИрд╕рд╛ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЗрд╕реНрдЯ@v22.4.0 , рдиреЛрдб@9.5.0ред

done() рд╕реЗ рдкрд╣рд▓реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдЖрдЙрдЯрдкреБрдЯ --forceExit рд╕рд╛рде рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм --forceExit рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдЕрдВрдд рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Test Suites: 1 passed, 1 total
Tests:       35 skipped, 1 passed, 36 total
Snapshots:   0 total
Time:        2.512s
Ran all test suites matching /test\/api.test.js/i.
  console.log test/api.test.js:247
    bar

рддреЛ рдХреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░ рдЬреЗрд╕реНрдЯ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдлреНрд▓рд╢ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рд╣реИ: https://github.com/facebook/jest/blob/497be7627ef851c947da830d4a8e21046f847a78/integration-tests/__tests__/console_log_output_when_run_in_band.test.js#L24 рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рджреЛрд╖рдкреВрд░реНрдг рд╣реИ?

рдХреНрдпрд╛ рдХреЛрдИ рдПрдХ рдкреБрдирд░реБрддреНрдкрд╛рджрди рд░реЗрдкреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

рддреНрд╡рд░рд┐рдд рдЬреЛрдбрд╝: jest --no-cache рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдиреЛрдб 9.7.1 рдХреЗ рд╕рд╛рде, рдФрд░ рдЬреЗрд╕реНрдЯ 22.4.2 рдмреИрдмрд▓ 7 рдХреЗ рд╕рд╛рде рд╡рд░реНрдмреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рднреАрддрд░ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

"dependencies": {
  ...
},
"jest": {
  "verbose": true
}

рдХреБрдЫ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрд╛рдп рд╕реБрд╕рдВрдЧрдд рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рднреА рд╣рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдкрд╣рд▓реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдм рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд░реЗрдкреЛ рдХреА рд╢рд╛рдЦрд╛ рджреЗрд╡/рдбреЗрдХреНрд╕реА-рд╕рд░реНрдЪ-рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ:
[email protected] :WorldBrain/Memex.git

рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ src/search/index.test.ts рдореЗрдВ insertTestData() рдореЗрдВ рдХрд╣реАрдВ рднреА рдЬреЛрдбрд╝реЗрдВ:
console.log('!?!?!?!!?!?!!?'); expect(1).toBe(2)

Node.js рд╕рдВрд╕реНрдХрд░рдг 6.11 рдФрд░ 8.10 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╣рд▓ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдбрд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ :(

@ рдлреНрд░реИрдВрдХреНрд░реЗрдб рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ verbose: "false" рд╕реЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ https://github.com/evanw/node-source-map-support/issues/207 рдХрд▓ рдФрд░ рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд╣реА рднрдпрд╛рдирдХ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Node.js рдореЗрдВ process.stdout рдХреЛ рд▓рд┐рдЦрдирд╛ рдХрднреА-рдХрднреА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реЛрддрд╛ рд╣реИ рдФрд░ Node.js рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдХреЗ рдХрдИ рдЯрд┐рдХреЛрдВ рдкрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрд▓рд┐рдВрдЧ process.exit(), рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЙрди рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП stdout рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

https://nodejs.org/api/process.html#process_process_exit_code

рдореИрдВрдиреЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ process.exit() рдХрд╛ рдЙрдкрдпреЛрдЧ --forceExit рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпреЛрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛: https://github.com/facebook/jest/issues/3853#issuecomment -375183943

@ledbit рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╡рд╛рд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдбреЗрдврд╝ рд╕рд╛рд▓ рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рд╣реИ рдФрд░ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдПрд╕рд┐рдВрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рднреАрддрд░ рдиреЗрд╕реНрдЯреЗрдб рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреЗ рднреАрддрд░ рдорд┐рд▓реАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЖрдкрдХреЛ рдореБрдЭрд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХреЗрдВ?

22 рдорд╛рд░реНрдЪ, 2018 рдХреЛ рд╕реБрдмрд╣ 8:32 рдмрдЬреЗ, рдбреЗрдирд┐рд╕ рдмреНрд░рд╛рдЙрди рдиреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рд▓рд┐рдЦрд╛:

рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдПрд╕рд┐рдВрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рднреАрддрд░ рдиреЗрд╕реНрдЯреЗрдб рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреЗ рднреАрддрд░ рдорд┐рд▓реАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/jest/issues/2441#issuecomment-375349444 рдкрд░ https://github.com/notifications/unsubscribe-auth/ADrayIO4NBB2dZM1XL8ZQO32W9SUnu2Yks5tg8QCgaJpZM ред

рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ! рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд░реЗрдкреЛ рд╣реИред https://github.com/RALifeCoach/handandfootserver.git

npm рд╕реЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдБ рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЪрд▓рд╛рдПрдБред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдврдХреЗ рд╣реБрдП рд╣реИрдВред

рд╡рд╣рд╛рдБ - рджреЗрд╡ рдЯреАрдо рдХреЗ рдкрд╛рд╕ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдПред рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░реЗрдВред

22 рдорд╛рд░реНрдЪ, 2018 рдХреЛ рд╕реБрдмрд╣ 8:36 рдмрдЬреЗ, рдХреНрд░рд┐рд╕реНрдЯреЛрдлрд░ рдУрд▓реАрдлрдВрдд [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЖрдкрдХреЛ рдореБрдЭрд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХреЗрдВ?

рдорд╛рд░реНрдЪ 22, 2018, рдкрд░ 8:32 рдмрдЬреЗ, рдбреЗрдирд┐рд╕ рдмреНрд░рд╛рдЙрди < [email protected] [email protected] > рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдПрд╕рд┐рдВрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рднреАрддрд░ рдиреЗрд╕реНрдЯреЗрдб рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрд▓ рдХреЗ рднреАрддрд░ рдорд┐рд▓реАред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/jest/issues/2441#issuecomment-375349444 рдкрд░ https://github.com/notifications/unsubscribe-auth/ADrayIO4NBB2dZM1XL8ZQO32W9SUnu2Yks5tg8QCgaJpZM ред

@RALifeCoach рдЕрдм рдЖрдкрдХреЗ рд░реЗрдкреЛ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ, рд╡рд╣рд╛рдВ рдХрд╛рдлреА рд▓реЙрдЧрд┐рдВрдЧ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд▓реЙрдЧрд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдк рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЪрд▓рд╛рдУред рдЖрдк рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХреБрдЫ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╢рдирд┐рд╡рд╛рд░, рдЕрдкреНрд░реИрд▓ 14, 2018: 3:10 рдкреВрд░реНрд╡рд╛рд╣реНрди рд╕рд┐рдореЗрди рдмреЗрдХреНрдЦреБрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@RALifeCoach https://github.com/RALifeCoach рдЕрдм рдЖрдкрдХреЗ рд░реЗрдкреЛ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ,
рд╡рд╣рд╛рдВ рдХрд╛рдлреА рд▓реЙрдЧрд┐рдВрдЧ рд╣реИред рджрд┐рдорд╛рдЧ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд▓реЙрдЧ рдЗрди рдХрд░ рд░рд╣рд╛ рд╣реИ
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдк рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/jest/issues/2441#issuecomment-381318608 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADrayHQCc8C0NmMmrtE7mEo2jN999CChks5tocsKgaJpZM4LVbUv
.

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреНрдпрд╛ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рд╕рд╛рдлрд╝ рд╣реЛ рдЧрдпрд╛ рд╣реИ?

рдпрджрд┐ рдЫрд╣ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВред рд▓реЙрдЧ 6 рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░
рдкрд░реАрдХреНрд╖рдг рд╕рд╛рд░рд╛рдВрд╢ 6 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддрд╛ рд╣реИред

рд╢рдирд┐рд╡рд╛рд░, рдЕрдкреНрд░реИрд▓ 14, 2018, 8:58 рдкреВрд░реНрд╡рд╛рд╣реНрди рдкрд░ рд╕рд┐рдореЗрди рдмреЗрдХреНрдЦреБрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдХреНрдпрд╛ рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ
рдХрдВрд╕реЛрд▓ рдлрд┐рд░ рд╕рд╛рдлрд╝ рд╣реЛ рдЧрдпрд╛?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/jest/issues/2441#issuecomment-381339074 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/ADrayF0P5SqpHjaAAYcPaIAF7ubSMVRTks5tohyIgaJpZM4LVbUv
.

рдореИрдВ рдпрд╣ рднреА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ @RALifeCoach рдХреНрдпрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдкрдирд╛ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдлреНрд▓реИрд╢ рджреЗрдЦреВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЬрдм рдореИрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдЕрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдиреЛрдб 8.11.1 рдкрд░ рднреАред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдмрдЧ рдлрд╛рдЗрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣рд╛рдВ рд╡рд╛рдкрд╕ рджреЗрдЦреЗрдВ?

рдЕрднреА рднреА рдиреЛрдб v8.9.0 рдореЗрдВ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдореИрдВ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ "рдУрд╡рд░рд░рд╛рдЗрдЯ" рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @RALifeCoach рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ - рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдЬреИрд╕реЗ @@@ ) рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░рдХреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛:

yarn test --verbose | grep '@@@'

рдпрд╣ рдПрдХ рднрдпрд╛рдирдХ рд╣реИрдХ рд╣реИ (рдЖрдк рд╕рднреА рдХрдВрд╕реЛрд▓ рд░рдВрдЧ рдЦреЛ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдФрд░ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рд╕рд╛рд░рд╛рдВрд╢ рджреЗрдЦрддреЗ рд╣реИрдВ) рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЕрдм рддрдХ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП --verbose рддрд░реНрдХ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдФрд░ рдЗрд╕реЗ --watch рдорд╛рдзреНрдпрдо рд╕реЗ react-scripts рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред

[рдирд╡реАрдирддрдо рдЬреЗрд╕реНрдЯ v23.0.0, рдиреЛрдб v8.11.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП react-scripts рдлреЛрд░реНрдХрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛]

package.json рдореЗрдВ "verbose": true рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИред рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

рдПрдХ рдмрдВрдж рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рд░ рдореИрдВ рдЕрднреА рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рд╣реИ рдЬреЛ рд╣рдо рдкрд░ рдПрдХ рдордЬрд╛рдХ рдЦреЗрд▓рддрд╛ рд╣реИ рдФрд░ "рд╣рд╛рдИрдЬреИрдХ" рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (),
рдЗрд╕реЗ рдиреЛ-рдСрдк рдореЗрдВ рдмрдирд╛рдирд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ ...

console.log = function(){ /* do nothing */}

рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЙрдкрд╛рдп рд╡рд┐рдбрдВрдмрдирд╛ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ - рджреЗрдЦреЗрдВ https://stackoverflow.com/questions/7089443/restoreing-console-log
--рдХрдВрд╕реЛрд▓ рдорд┐рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП.рд▓реЙрдЧ

delete console.log
console.log("Can you hear me now, Jesters...?");

... рдФрд░ рдЕрдЪрд╛рдирдХ - рд╡реЛрдЗрд▓рд╛! -- рдЖрдЧ рдХреА рд▓рдкрдЯреЛрдВ рд╕реЗ рдПрдХ рдлреАрдирд┐рдХреНрд╕ рдХреА рддрд░рд╣ -- console.log() рдЬреЗрд╕реНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ...!
рдЬреЗрд╕реНрдЯ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ "рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рд╕реНрдерд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА)" рднреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ ...

>

рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ __tests__\libarray-helpers.test.js:35
рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЕрднреА рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЗрд╕реНрдЯрд░...?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ "рд▓реЙрдЧреИрдЯрд┐рдо" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд╛рд▓ рд╣реА рдореЗрдВ https://www.npmjs.com/package/logatim рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣
рдЬреЗрд╕реНрдЯ рдХреЗ рдЕрдкрд╣рд░рдг рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдкреНрд░рддрд┐рд░рдХреНрд╖рд┐рдд рд▓рдЧрддрд╛ рд╣реИ ... (рд╢рд╛рдпрдж рдпрд╣ рдХрдВрд╕реЛрд▓ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд▓реЙрдЧ ...)

рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рд╣рд╛рдИрдЬреИрдХ" рдХрдВрд╕реЛрд▓ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред logatim рд▓рд┐рдП рдЦреБрдж рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ
рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ "рд╕реВрдЪрдирд╛" рд╕реНрддрд░ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ...

// const logatim = require('logatim') // ES5
import logatim from 'logatim' // ES6
/* ... */
console.log = function(...args){ logatim.green.info("[INFO]",...args) } // ES6

(рдХреГрдкрдпрд╛ рдореЗрд░реЗ рдордЬрд╛рдХ рдХреЛ рдмреЗрд▓рд┐рдХрд╕рд┐рдЯреА рдХреЗ рд░реВрдк рдореЗрдВ рди рд╕рдордЭреЗрдВ ... рдПрдХ рдЕрдЪреНрдЫреЗ рдЙрддреНрдкрд╛рдж рдЬреЗрд╕реНрдЯ рдХрд╛ рдирд╛рдордХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рдХрд╣рд╛рдВ рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдордЬрд╛рдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ ...)

рдирдлрд░рдд рдлреИрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, @yanshuf0 , рдЙрди рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдЦреБрд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

рдореБрдЭреЗ рдпрд╣ "рдУрд╡рд░рд░рд╛рдЗрдЯрд┐рдВрдЧ" рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА (рд╡рд┐рдВрдбреЛрдЬ 10, рд╡реАрдПрд╕ рдХреЛрдб рдЯрд░реНрдорд┐рдирд▓, рдиреЛрдб.рдЬреЗрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдФрд░ рдлрд┐рд░ рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдмрдЧ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ --watch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ "verbose": false рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛, рд▓реЗрдХрд┐рди рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рд╕реЗ рдмрдЧ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛ред

рдореБрдЭреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреВрдЫрдирд╛ рд╣реИ, рдХреНрдпрд╛ рдЬреЗрд╕реНрдЯ рдЬрд╛рдирдмреВрдЭрдХрд░ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЙрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рд╣реИ? рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдиреАрдЪреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╛рджреГрдЪреНрдЫрд┐рдХред

--watchAll рдзреНрд╡рдЬ рдиреЗ рдЗрд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдорд╣реАрдиреЛрдВ рддрдХ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде-рд╕рд╛рде рдиреАрд▓реЗ рд░рдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдиреЛрдб 8.9 рдХреЗ рд╕рд╛рде рд╣реБрдЖред рдПрдХ рдорд┐рдирдЯ рдХрд╛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдареАрдХ рдЖрдЙрдЯрдкреБрдЯ рджреЗ рд░рд╣рд╛ рдерд╛, рдЕрдЧрд▓реЗ рд╣реА рджрд┐рди рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реБрдЖ рдФрд░ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред --watch рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдЖрджреЗрд╢ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рдкрдбрд╝рд╛ред --watch --verbose false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рдФрд░ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓реЗрдВрдЧреЗред

рдпрд╣рд╛рдБ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдвреВрдБрдврдирд╛, рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @bkempner

рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ 22.4.4 рдФрд░ 23.4.1 (рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрддрдорд╛рди) рджреЛрдиреЛрдВ рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдЬрд┐рди рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡реЗ рд╣реИрдВ:

$ jest --forceExit --runInBand --bail --ci --json --outputFile=/tmp/jest_results.json

рдЗрд╕реА рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЕрдиреНрдп рдореБрджреНрджреЗ рдиреЗ --json рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ ... рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рддрдм рд╕реЗ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓ рдЧрдИ рд╣реЛ, рд▓реЗрдХрд┐рди STDOUT рдФрд░ STDERR рдЖрдЙрдЯрдкреБрдЯ рд╣рдореЗрд╢рд╛ рджрдмрд╛ рд╣реБрдЖ рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рдореБрдЭреЗ --watch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛; рдХрднреА-рдХрднреА рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдВрдд рдореЗрдВ рдирд┐рдкрдЯ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ --silent рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрдп рд╣реИ, рдЗрд╕реЗ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рд▓реЙрдЧ: jest --silent=false

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдЯрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ, рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрднреА рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕реЗ #2166 рдХреЗ рдбреБрдкреНрд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЕрдм рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдХрд╛рдпрдо рд╣реИред

@thymikee рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЧрдИ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

V23 рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдб рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП TTY рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ рднреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд░рджреНрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ: https://github. рдХреЙрдо/рдлреЗрд╕рдмреБрдХ/рдЬреЗрд╕реНрдЯ/рдкреБрд▓/6647.
рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдорд╛рдорд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рдирд╣реАрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ 1 рдкрд░реАрдХреНрд╖рдг рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рддреЗрдЬрд╝ рд╣реЛрддрд╛ рд╣реИ (1s рд╕реЗ рдХрдо рдЪрд▓рддрд╛ рд╣реИ) - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдЕрднреА рднреА console.log s рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

@davidgilbertson рдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ (https://github.com/facebook/jest/issues/2441#issuecomment-286248619) рдореЗрд░реЗ package.json рдореЗрдВ verbose: true рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рд╕реЗ --verbose рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЭрдВрдбреЗ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдпрдерд╛ рдЫрд┐рдкреЗ рд╣реБрдП рдереЗред рдпрд╣ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ package.json рдореЗрдВ verbose: true рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ console.log рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрднреА-рдХрднреА рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХрднреА-рдХрднреА рдирд╣реАрдВ (рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рднреА рдХреНрд▓рдореНрдкреНрдб рдореЗрдВ 10 рдкрд╕рдВрдж рд╣реИрдВ рддреЛ рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рд╕рд┐рд░реНрдл рдПрдХ рдХреЗ рд▓рд┐рдП) - рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ async рдореБрджреНрджрд╛ рд╣реИ

рдореБрдЭреЗ рдХрднреА-рдХрднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рднреА рд╣реЛрддреА рд╣реИ, рдореИрдВ runInBand (https://jestjs.io/docs/en/cli.html#runinband) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

@ndelangen рдЬреЛ рдЙрддреНрд╕реБрдХ рд╣реИ - рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдПрд╕рд┐рдВрдХ рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЬреЗрд╕реНрдЯ рдиреЗ рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдПрдХрддреНрд░ рдХрд┐рдП рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЕрдВрдд рдореЗрдВ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛, рдирд╣реАрдВ?

рднрд▓реЗ рд╣реА рдореИрдВ verbose рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рднреА рд╕рдорд╕реНрдпрд╛ рдЖрд╡рд░реНрддреА рд╣реЛ рд░рд╣реА рд╣реИред

--runInBand рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдм рддрдХ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдХрдИ рдмрд╛рд░ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдЬреЗрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рди рд╣реЛ рдЬрд╛рдПред

рдореИрдВрдиреЗ рдХреБрдЫ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝реА рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рдЖрдВрд╢рд┐рдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реВрдВ:

https://github.com/facebook/jest/issues/3853#issuecomment -413622844

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

рдпрд╣рд╛рдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдпреБрдХреНрдд рд░реЗрдкреЛ: https://github.com/spion/jest-logging-repro

рдпрд╣рд╛рдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг: https://gist.github.com/spion/bbb34c5abc1230a37ad5f4f01336b8df

рдкреИрдЪ рдЖрдВрд╢рд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐

  • рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд╕рд╛рд░реЗ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЕрдм рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ
  • рдХрднреА-рдХрднреА (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ) рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдЕрджреНрдпрддрди рдХреЗ рдмрд╛рдж рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рд╢рд╛рдпрдж рдпрд╣ рддрдереНрдп рд╣реИ рдХрд┐ рдмрдЪреНрдЪреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рд╕рдлрд▓рддрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдзрд╛рд░рд╛рдПрдВ рдлрд╝реНрд▓рд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

@philraj рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ .. рдореБрдЭреЗ рдЗрдЪреНрдЫрд┐рдд рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдпрд╣ рдХреИрд╕реЗ рдПрдХ рдкреНрд░рдореБрдЦ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдпрдерд╛рд╢реАрдШреНрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? 2016 рд╕реЗ рдпрд╣ рдореБрджреНрджрд╛ рдХреИрд╕реЗ рдЦреБрд▓рд╛ рд╣реИ ??

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: рдЗрд╕ рдкреИрдЪ рдХреЗ рд╕рд╛рде, рдореИрдВ рдХреЗрд╡рд▓ 8 рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╣реВрдВ:

diff --git a/packages/jest-runner/src/index.js b/packages/jest-runner/src/index.js
index 2f4dd724..618a8cbf 100644
--- a/packages/jest-runner/src/index.js
+++ b/packages/jest-runner/src/index.js
@@ -97,11 +97,14 @@ class TestRunner {
     // $FlowFixMe: class object is augmented with worker when instantiating.
     const worker: WorkerInterface = new Worker(TEST_WORKER_PATH, {
       exposedMethods: ['worker'],
-      forkOptions: {stdio: 'inherit'},
+      forkOptions: {stdio: 'pipe'},
       maxRetries: 3,
       numWorkers: this._globalConfig.maxWorkers,
     });

+    worker.getStdout().pipe(process.stdout);
+    worker.getStderr().pipe(process.stderr);
+
     const mutex = throat(this._globalConfig.maxWorkers);

     // Send test suites to workers continuously instead of all at once to track
diff --git a/packages/jest-worker/src/worker.js b/packages/jest-worker/src/worker.js
index 5eee64af..17d76d36 100644
--- a/packages/jest-worker/src/worker.js
+++ b/packages/jest-worker/src/worker.js
@@ -87,6 +87,13 @@ export default class {
   }

   _initialize() {
+    const forceColor =
+      'FORCE_COLOR' in process.env
+        ? process.env['FORCE_COLOR']
+        : // $FlowFixMe: Does not know about isTTY
+          process.stdout.isTTY
+          ? '1'
+          : '0';
     const child = childProcess.fork(
       require.resolve('./child'),
       // $FlowFixMe: Flow does not work well with Object.assign.
@@ -94,6 +101,7 @@ export default class {
         {
           cwd: process.cwd(),
           env: Object.assign({}, process.env, {
+            FORCE_COLOR: forceColor,
             JEST_WORKER_ID: this._options.workerId,
           }),
           // Suppress --debug / --inspect flags while preserving others (like --harmony).

рд╡реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ FORCE_COLORS рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред env, hg scm рдФрд░ packages/jest-runner/src/__tests__/test_runner.test.js рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдордЬрд╝рд╛рдХ рдирд╣реАрдВ рдЙрдбрд╝рд╛ рд░рд╣реЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рдЙрди рдкрд░ рдХреЛрдИ рдкрд╛рдЗрдк рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕ рджрд░ рдкрд░ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ рдЬреЛ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ ... рдмрд╢рд░реНрддреЗ рдореБрдЭреЗ рдкреВрд░реА рд░рд┐рдкреЛрд░реНрдЯ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдорд┐рд▓ рдЬрд╛рдПред

рдЬреИрд╕рд╛ рдХрд┐ @bkempner рдиреЗ рдХрд╣рд╛, --watch --verbose false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред

--watch рдореЗрдВ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдордЬрд╛рдХ рдореЗрдВ рдХрд░реНрд╕рд░ рд▓реЗ рдЬрд╛рдХрд░ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред --verbose , --maxWorkers 1 , --runInBand рдЙрдкрд╕реНрдерд┐рддрд┐/рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рджреЗрддреА рд╣реИред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди jest --watch | cat ред рдореИрдВ рд╕рднреА рд░рдВрдЧреЛрдВ рдХреЛ рдЦреЛ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╛, TERM=dumb jest --watch ред рдореИрдВ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рд╣рдиреЗ рд╕реЗ рд╣рд╛рд░ рдЬрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд░рдВрдЧ рдФрд░ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

рдореЗрд░реЗ рд▓рд┐рдП рдЬреЛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╡рд╣ console.debug рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛

TERM=dumb рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдареАрдХ рдХрд░рддрд╛ рд╣реИ

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдЯрд░реНрдо = рдЧреВрдВрдЧрд╛ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдареАрдХ рдХрд░рддрд╛ рд╣реИ

рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ verbose рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП 0_o\ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

--verbose false рдХреЛ package.json "test" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рдореБрдЭреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рдмрд┐рдирд╛ рд╡рд╣ рдХрднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реЛрддрд╛ред

рдЬреИрд╕реЗ

"scripts": {
    "test": "jest --watch --verbose false"
}

рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдХреБрдЫ рдЕрдВрддрд┐рдо рдХрдВрд╕реЛрд▓ рдХреИрд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдирд╣реАрдВ, рдЗрд╕реЗ рдореЗрд░реЗ рд╡реЙрдЪ рдХрдорд╛рдВрдб рдореЗрдВ --verbose false рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ред

рдЬрдм рдЖрдк --watch рдмрд┐рдирд╛ рджреМрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡реЙрдЪ рдлреНрд▓реИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрддрдирд╛ рд╡рд┐рдбрдВрдмрдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИ рдЬрдм рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЬреЗрд╕реНрдЯ 23.6 рдореЗрдВ рд╡рд░реНрдмреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдореИрдВ 23.5 рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрднреА рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ --clearCache рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдмреЛрдЬрд╝ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдлрд▓ рди рд╣реЛ рдЬрд╛рдПред рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЯреНрд░рд┐рдЧрд░ рдХреНрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реА рд▓реЙрдЧ рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдпрд╛ рдЙрд╕ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫред рдПрдХ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХреИрд╢ рдХреЛ рджреВрд╖рд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдореИрдВ --verbose false рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдзрдиреНрдпрд╡рд╛рдж @jamespolanco --clearCache рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рд▓рд┐рдП ( рдлрд┐рд▓рд╣рд╛рд▓) рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ --no-cache рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдореЗрд░реЗ рдХреБрдЫ console.log рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╣реА рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ 5 console.log рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рдкрд╣рд▓реА 3 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред --clearCache рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛ рдЬрд╣рд╛рдВ рдХреЛрдИ console.log s рджрд┐рдЦрд╛рдИ рди рджреЗ?

рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ, рдХрдВрд╕реЛрд▓.рдбреАрдмрдЧ, рдФрд░ рдХрдВрд╕реЛрд▓.рдПрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ --no-cache рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореЗрд░реЗ рдХрдВрд╕реЛрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рднреА рдЖ рд░рд╣реА рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 23.6.0

рдореИрдВрдиреЗ рдЗрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рднреА рдХрд┐рдпрд╛ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ:
asciicast

рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣- --watch рд╕рд╛рде рдЪрд▓рдиреЗ рдкрд░ рд╣реА рдЗрд╕реЗ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред --verbose false рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

рд╡рд░реНрдмреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╛ рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рднреА рдореБрдЭреЗ рдпрд╣ рдЕрдиреБрднрд╡ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдорд╛рдиреЛ рдпрд╛ рди рдорд╛рдиреЛ, рдореИрдВ рдХрднреА-рдХрднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддреЗ рд╣реБрдП рд▓реЙрдЧ рдЗрди рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рде рд╣реА node --inspect node_modules/.bin/jest --runInBand mypath/to/my.test.js рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ console.log рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдиреЛрдб v9.11.1
рдЬреЗрд╕реНрдЯ: v23.6.0

package.json рдореЗрдВ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди:

  "jest": {
    "preset": "react-native",
    "verbose": true,
    "testEnvironment": "node",
    "haste": {
      "defaultPlatform": "android",
      "platforms": [
        "android",
        "ios",
        "native"
      ],
      "providesModuleNodeModules": [
        "react-native"
      ]
    },
    "setupFiles": ["<rootDir>/__tests__/setup"]
  },

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд░реНрдмреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рд╣реИред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрдмреЛрдЬрд╝ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рд▓рд╛рдЗрди рдЧрдгрдирд╛ рдЧрдгрдирд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрд╕ рдкрд░ рд╡рд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЖрдк рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП jest-watch-toggle-config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯ рдХрд░реЗрдВ:

module.exports = {
  "watchPlugins": [
    ["jest-watch-toggle-config", { "setting": "verbose" }]
  ]
}

рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдмреЛрдЬрд╝ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ v рджрдмрд╛рдПрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ v рдлрд┐рд░ рд╕реЗ рджрдмрд╛рдПрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЬрдм рддрдХ рдЖрдк рд╡рд░реНрдмреЛрдЬрд╝ рдХреЛ рдмрдВрдж рд░рдЦрддреЗ рд╣реИрдВ, рдЖрдк рд╕рднреА рд▓реЙрдЧ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдВрдЬрд╛рдЗрдо рдЙрдерд▓реЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп --verbose=false рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдВрдЬрд╛рдЗрдо рдорд╛рдЙрдВрдЯ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗред

рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдкрд░реАрдХреНрд╖рдг-рд░реЗрдВрдбрд░рд░ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рдмрдирд╛рдо рдХреИрд╕реЗ рд╡реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд┐рд▓реНрдЯрд┐рди рд░реЗрдВрдбрд░рд░ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдЪреВрдВрдХрд┐ рдПрдВрдЬрд╛рдЗрдо рдХрдВрд╕реЛрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)

FYI рдХрд░реЗрдВ рдпрд╣ PR рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ - https://github.com/facebook/jest/pull/6871

рдпрд╣ рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрдмреЛрдЬрд╝ рдореЛрдб рдореЗрдВ рд╕рднреА рд▓реЙрдЧ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрднреА рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (jest 22.4.2 рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рд▓реЗрдХрд┐рди рд╡реЙрдЪ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдВрдЧреЗред --runInBand рд╕рд╛рде рдЪрд▓рдиреЗ рд╕реЗ рдЗрд╕реЗ рд╡реЙрдЪ рдореЛрдб рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

    "test": "jest --watch --runInBand",
    "test:once": "jest",

рдореИрдВрдиреЗ рдпрд╛ рддреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (Jest 23.6.0), рдФрд░ "jest --watch --verbose=false" рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреАрдЖрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЛрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпрд╣ jest@beta ( 24.0.0-alpha.9 рдЕрднреА рдЙрдкрд▓рдмреНрдз рд╣реИ)

рддреЛ рдпрд╛рд░реНрди рдЬреЗрд╕реНрдЯ @ рдмреАрдЯрд╛ рдЬреЛрдбрд╝реЗрдВ

рдУрдиреНрд╕ред 19. рджреЗ. 2018 рдХреЗрдПрд▓. 16:46 рд╕реНрдХреНрд░реЗрд╡ рд╕рд┐рдореЗрди рдмреЗрдХреНрдЦреБрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com :

рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреАрдЖрд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрджреНрджреЛрдВ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣реИ
jest@beta рдореЗрдВ рдЙрдкрд▓рдмреНрдз (24.0.0-alpha.9 рдЕрднреА)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/jest/issues/2441#issuecomment-448641697 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAM5P7ijQjSbWB0-zzDCfC9Uggyk5RGoks5u6l9EgaJpZM4LVbUv
.

>


рддрд╛рд░рдЬреЗрдИ рд╣реБрд╕реЗ
рдореЛрдмрд┐рд▓: 920 63 413

@tarjei , рд╣рд╛рдБ:

yarn add --dev jest<strong i="7">@beta</strong>

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдирдИ (рдореЗрд░реЗ рд▓рд┐рдП) рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдЬреЗрд╕реНрдЯ --silent рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдЙрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдореИрдВ рдЕрдм рд▓реЙрдЧ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ тАНтЩВя╕П

рдиреЛрдЯрд┐рд╕ рдЬрдм рд╡рд░реНрдмреЛрдЬрд╝ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ (рдореИрдВ рдЗрд╕реЗ jest-watch-toggle-config рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реВрдВ), рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдмреАрдЯрд╛ рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

--verbose=false

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ console.log() рдЬрд╣рд╛рдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ рдЬрдмрдХрд┐ рдЕрдиреНрдп рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдереЗ (рдиреЛрдб v8, [email protected])

const something = () => new Promise(resolve => {
  console.log('NOT logged for some reason!')
  setTimeout(resolve, 100);
});

describe('Something', () => {
  it('logging works in non-async test', function () {
    console.log('logged 1')
    console.log('logged 2')
    expect(true).toBe(true);
  });

  it('console log does not work well in async test', async () => {
    console.log('logged 3')
    await something();
    console.log('NOT logged!')
    expect(true).toBe(true);
  });
});

/* Output:
> logged 1
> logged 2
> logged 3
*/

async рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ console.log async рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд▓реЙрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд╕рд╛рде рд╣реА await рдмрд╛рдж рднреА рд▓реЙрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЙрд╕ async рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреБрдЫ рдФрд░ console.log рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЖрдк await рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рд▓реЙрдЧ рдЬреИрд╕реЗ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ ЁЯд╖тАНтЩАя╕П ЁЯд╖тАНтЩВя╕П

рддреЛ рдХреНрдпрд╛ @philwhln рдиреЗ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛

рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╕рдЪреНрдЪрд╛рдИ рд╣реИред

--verbose=false

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд┐рдпрд╛ред

@DanweDE рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд╡реАрдирддрдо рдЕрд▓реНрдлрд╛ yarn add jest<strong i="6">@beta</strong> --dev рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╡рд░реНрдмреЛрдЬрд╝ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рднреА true ?

--verbose false рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд▓рдЧрддрд╛ рд╣реИ :)

рдХреНрдпрд╛ рдпрд╣ рддрдп рд╣реИ? рдореИрдВ рдЕрднреА рднреА "jest" рдкрд░ рдХреЛрдИ рдХрдВрд╕реЛрд▓ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ: "23.6.0"

@iDVB рдпрджрд┐ рдЖрдк рдереНрд░реЗрдб рдХреЛ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдКрдкрд░ рдкрдврд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ @spion . рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛

рд╕рд╛рде рд╣реА рд╣рд░ рдХреЛрдИ рдЬреЛ --verbose false рдпрд╛ --verbose true рдпрд╛ рдлрд╝реНрд▓реИрдЧ рдпрд╛ рдиреЛрдб рдпрд╛ рдЬреЗрд╕реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрдпреЛрдЬрди рдХреЛ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ, рдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдЬрд┐рди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрдирдореЗрдВ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ

@philraj рд╣рдордиреЗ "24.0.0-alpha.9" рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣

рдкреБрд╖реНрдЯрд┐ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ 24.0.0-alpha.9 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЬреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛ рд╣реВрдБред рдореИрдВ create-react-app рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рд▓реЙрдЧ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрд╛ред рдореИрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ рдФрд░ рдЕрдм рд▓реЙрдЧ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмреЗрджрдЦрд▓ рдХрд░рдиреЗ рд╕реЗ рдЬреЗрд╕реНрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓ рдЧрдпрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХреИрд╕реЗ рдЪрд▓ рд░рд╣рд╛ рдерд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдмрджрд▓ рдЧрдИред рдпрд╣ 23.6.0 ред

24.0.0-alpha.16 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдХреЛрдИ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ verbose=false рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде-рд╕рд╛рде [email protected] рдкрд░ рднреА рдмрд╣реБрдд рдЕрд╕рдВрдЧрдд рдкрд░рд┐рдгрд╛рдо

--verbose=false рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛

рдореИрдВ 24.1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╡рд░реНрдмреЛрдЬрд╝ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА console.log рдХрдерди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬрд┐рд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

image

рдпрд╣ ts-jest рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдЬрдм рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА ts-jest рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ? рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЖрдИрдбреАрдХреЗ рдХреИрд╕реЗ ts-jest рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЯрд╛рдЗрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рд╡реЗ рдХреНрдпреЛрдВ рдЧрд╛рдпрдм рд╣реИрдВ - рдХреЛрдб рдХрднреА рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ

рдореИрдВ рдЕрднреА рднреА console.log рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдХрднреА-рдХрднреА рд▓реЙрдЧ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЬреЗрд╕реНрдЯ 24.7.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВрдиреЗ 24.7.1 рдФрд░ 24.2.0-alpha.0 рдХреЛ рднреА рдЖрдЬрдорд╛рдпрд╛ рд╣реИред

verbose=false рдФрд░ verbose=true рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рджреЛрдиреЛрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдиреЛрдб v10.8.0 рдФрд░ v6.17.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдлрд┐рдХреНрд╕ рдХреЗред

рдХреНрдпрд╛ рдпрд╣рд╛рдБ рдХреБрдЫ рдХрдореА рд╣реИ?

@mulholio рдХреНрдпрд╛ рдЖрдк 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк

рд╣рд╛рдВ, рдЬреЗрд╕реНрдЯ рдХрд╛ рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрднреА-рдХрднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдирд╣реАрдВ, рдореБрдЭреЗ рдХрд┐рддрдирд╛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдордЬрд╝рд╛рдХ 23.6.0
рдиреЛрдб v8.13.0
рдФрд░ рдореЗрд░рд╛ рдордЬрд╝рд╛рдХ.config.js

const path = require('path');

module.exports = {
  moduleNameMapper: {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
    "\\.(less|css|scss)$": "<rootDir>/__mocks__/cssMock.js",
    "^@\/(.*)$": "<rootDir>/src/client/$1",
  },
  bail: true,
  setupTestFrameworkScriptFile: "<rootDir>/setupTests.js",
  collectCoverageFrom: [
    "src/client/**/*.{js,jsx}",
  ],
  verbose: true,
  coverageReporters: ["text", "text-summary", "lcov", "json"],
  coveragePathIgnorePatterns: ["src/client/index.js"],
}

рд╣рд╛рдБ, рдХреНрд░рд┐рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж

рдореБрдЭреЗ рдпрд╣ рдмрдЧ рднреА рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдлрд╡рд╛рдИрдЖрдИ: рдЕрдЧрд░ рдореИрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП fit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░реЗ console.log s рдиреЗ рдХреБрдЫ рднреА рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкреВрд░рд╛ рд╕реВрдЯ рдЪрд▓рд╛рдпрд╛, рддреЛ console.log s рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ "рдЦрд╛рдП рдЧрдП" рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдХрд╛рдзрд┐рдХ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдХреЛ рдХреНрд▓реЛрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

console.log('ok');
console.log('ok');
console.log('eaten up');

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ [рдкрд╛рд╕] рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдкрд┐рдЫрд▓реЗ 2 рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ (рдореИрдВ рдкрд╛рд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ)

+1000

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ yarn build !

рдлрд┐рд░ рднреА рд╕рд╛рде рдХреЛрдИ рдЙрддреНрдкрд╛рджрди --verbose=true рдпрд╛ --verbose=false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп [email protected] - рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ 3 рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдлреНрд▓реИрдЧ --runInBand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдХрд░ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдХрд┐рд╕реА рдиреЗ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ рди рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, [email protected]

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛, рдЖрдЦрд┐рд░реА рдЯреЗрд╕реНрдЯрдХреЗрд╕ (рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдЕрдк) рдореЗрдВ рдЖрдЦрд┐рд░реА 2 рд▓рд╛рдЗрдиреЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдирд╛ рдЖрдЦрд┐рд░реА рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдирд╛рдПрдВ

it('bugfix for [email protected]', () => {
  console.log("[email protected] bug|last 2 lines get override. remove this once 24.8.0 gets fixed");
  console.log("[email protected] bug|last 2 lines get override. remove this once 24.8.0 gets fixed");
});

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ ts-jest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХрдВрд╕реЛрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
jest.config.js

  globals: {
    'ts-jest': {
      diagnostics: false,
    },
  },

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ ts-jest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХрдВрд╕реЛрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
jest.config.js

  globals: {
    'ts-jest': {
      diagnostics: false,
    },
  },

рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╣рдорд╛рд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред рд╣рдордиреЗ verbose = false рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред

рд╣рдорд╛рд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг:

  • рдиреЛрдб 10.16.0
  • рдордЬрд╝рд╛рдХ 24.8.0
  • рдЯреАрдПрд╕-рдЬреЗрд╕реНрдЯ: 24.0.2
  • рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ 3.5.2
  • @types/jest 24.0.15

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ [рдкрд╛рд╕] рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдкрд┐рдЫрд▓реЗ 2 рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ (рдореИрдВ рдкрд╛рд╕ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ)

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ ([email protected])ред рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ [рдкрд╛рд╕] рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдЖрдЙрдЯрдкреБрдЯ рд▓рд╛рдЗрди рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рд▓рдЧрддреА рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рднреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рдмрд╕ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рдФрд░ рдЕрдВрддрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:

expect(thingIWantToLog).toBe({})

рдЗрд╕рдореЗрдВ рднреА рднрд╛рдЧ рд▓реЗрдВ: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рдкрд╛рд╕: ..." рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯрдбрдЖрдЙрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ "рдЕрдВрддрд┐рдо" рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдЧрд░ --verbose=false рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдмрд▓рд┐рджрд╛рди рдХреА рдирдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ ( \n ) рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдлреНрд▓реИрдЧ --runInBand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдХрд░ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ? рдХрд┐рд╕реА рдиреЗ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред
рд╕рдордп-рд╕рдордп рдкрд░ рдпрд╣ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рдерд╛ред
рдЗрд╕ рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
npm test -- --verbose --runInBand -t "My Test Name"

рдиреЛрдб рдФрд░ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг:
node v8.16.0
npm 6.4.1

рдпрд╣ рдореЗрд░рд╛ рдХрд╛рдордХрд╛рдЬ рд╣реИ:

npm рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ --save-dev sprintf-js

рдЖрдкрдХреЗ рдордЬрд╝рд╛рдХ рдореЗрдВ setupTest.js , рдпрд╛ рдЬрд╣рд╛рдБ рднреА рд╣реЛ:

import {sprintf} from 'sprintf-js';

console.log = (msg, args) => {
    const str = sprintf(msg, args);
    process.stderr.write(str + '\n');
  };

рдлрд┐рд░ рднреА рд╕рд╛рде рдХреЛрдИ рдЙрддреНрдкрд╛рджрди --verbose=true рдпрд╛ --verbose=false рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп [email protected] - рдпрдХреАрди рдирд╣реАрдВ рдХреНрдпреЛрдВ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ 3 рд╕рд╛рд▓ рдХреЗ рдмрд╛рдж рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рдореЗрд░рд╛ jest.config.js рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
jest -v 23.6.0 рдФрд░ node -v 8.11.2

module.exports = {
  clearMocks: true,
  moduleDirectories: [
    'node_modules',
  ],
  testEnvironment: 'node',
  testMatch: [
    '**/__tests__/**/*.js?(x)',
    '**/?(*.)+(spec|test).js?(x)',
  ],
  verbose: false,
};

рдлрд┐рд░ package.json рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

"scripts": {
  "test": "jest --config ./jest.config.js",
}

рдлрд┐рд░ рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЪрд▓рд╛рдПрдВ:

yarn test -- -t 'test-suite-name-here'

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --verbose=false рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдЬрдм рдЖрдк --silent рд╡рд┐рдХрд▓реНрдк рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЬреЗрд╕реНрдЯ рд▓реЙрдЧ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛ рджреЗрддрд╛ рд╣реИ
рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ yarn jest рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрд╣ рдмрдЧ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ... 3 рд╕рд╛рд▓...

рдмрдВрдж рдХрд░реЗрдВ --рдЪреБрдк
рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ ts-jest @ mr-madamin рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ts рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП!

verbose рдпрд╛ silent рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, --runInBand , TERM=dumb , рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдо рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ console.log рддрдм рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реЗрдЯрдЕрдк рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди it() рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рдирд╣реАрдВред

рдЬрдм рдмрд╛рдХреА рд╕рдм рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдП, рддрдм рднреА рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

require('fs').writeFileSync('./output', data);

рд▓реЗрдХрд┐рди рдореИрдВ рдореВрдВрдЧрдлрд▓реА рдХреЛ рдлреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдЯреНрдЯрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрдлрд╛рд╡рд╛рд╕реА рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: "jest": "^24.9.0"

рдореИрдВ рдЗрд╕ рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

npm test -- --runInBand -t "My Test Name"

рдЖрдк рдПрдХ рд╣реА рд╡рд┐рд╡рд░рдг() рдХреЗ рддрд╣рдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдореВрд╣ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП -t рдзреНрд╡рдЬ рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдЯреЗрд╕реНрдЯ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

verbose рдпрд╛ silent рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, --runInBand , TERM=dumb , рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдо рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ console.log рддрдм рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реЗрдЯрдЕрдк рдмреНрд▓реЙрдХ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди it() рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рдирд╣реАрдВред

рдЬрдм рдмрд╛рдХреА рд╕рдм рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдП, рддрдм рднреА рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

require('fs').writeFileSync('./output', data);

рд▓реЗрдХрд┐рди рдореИрдВ рдореВрдВрдЧрдлрд▓реА рдХреЛ рдлреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдЯреНрдЯрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрдлрд╛рд╡рд╛рд╕реА рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: "jest": "^24.9.0"

рдореИрдВ рдЕрдВрдд рдореЗрдВ рдПрдХрд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдкрд░ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рддрдХ рдореЛрдЪрд╛/рдкреНрд░реЙрдХреНрд╕реАрдХреНрд╡рд╛рдпрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдИ console.log рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдФрд░ рдЗрд╕ рдкрд░ рдХрдИ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ ...

"jest": "^24.9.0", рд╕рд╛рде рдиреЛрдб 8/10 рдПрд▓рдЯреАрдПрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛

рд╣рд╛рдВред рдХрд┐рдирд╛рд░реЗ рдкрд░ рднреА рд╣реВрдБред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рдФрд░ 3 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рджрд░реНрдж рдмрд┐рдВрджреБ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣реИрдХ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

рд╣реИрд▓реЛ рд╕реИрдорд▓реЗрд╡рд┐рди рдФрд░ рдкрд╛рд╡реЗрд▓реЛрдЬрд╝,
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

рдореИрдВ рдЗрд╕ рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
npm test -- --runInBand -t "My Test Name"

рдЖрдк рдПрдХ рд╣реА рд╡рд┐рд╡рд░рдг () рдХреЗ рддрд╣рдд рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдореВрд╣ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП -t рдзреНрд╡рдЬ рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╢реВрдЯ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐: рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рдПрд▓рдЬреА рдЕрдиреНрдп рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдЕрдВрдд рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рджреЗрдЦрддреЗ рд╣реИрдВред
Jest test console log

рдореЗрд░рд╛ рдиреЛрдб рдФрд░ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг:

node v8.16.0
npm 6.4.1

рдореИрдВ рдЕрдВрдд рдореЗрдВ рдПрдХрд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдкрд░ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рддрдХ рдореЛрдЪрд╛/рдкреНрд░реЙрдХреНрд╕реАрдХреНрд╡рд╛рдпрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдИ console.log рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдФрд░ рдЗрд╕ рдкрд░ рдХрдИ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ ...

"jest": "^24.9.0", рд╕рд╛рде рдиреЛрдб 8/10 рдПрд▓рдЯреАрдПрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛

Ive рдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╣рд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рдмрд╕ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ:
image

bash-5.0$ npm -v ; node -v; cat node_modules/jest/package.json |grep version
6.12.0
v12.11.0
  "version": "24.9.0",

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐: рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рдПрд▓рдЬреА рдЕрдиреНрдп рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдЕрдВрдд рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рджреЗрдЦрддреЗ рд╣реИрдВред

рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдХреА рдЬрд╛рдБрдЪ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдареАрдХ рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдореЗрд░рд╛ рд▓реЙрдЧ рдЙрддрд░рд╛ рдерд╛ред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░/рдЙрд╕реА рддрд░рд╣ рдирд╣реАрдВред

image

рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд┐рддрдирд╛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рджрд┐рди рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рдВрдЧ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ

--runInBand, -i                 Run all tests serially in the current process
                                  (rather than creating a worker pool of child
                                  processes that run tests). This is sometimes
                                  useful for debugging, but such use cases are
                                  pretty rare.

рддреЛ рдореИрдВ рдЬреЛ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬрдм рдореБрдЭреЗ рдХрд┐рд╕реА рдкрд░реАрдХреНрд╖рдг рдкрд░ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЕрдиреНрдп рд╕рднреА рд╕рдордп, рдмрд╕ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВред

рдЪрд┐рдпрд░реНрд╕

рдХрд╛рд╕реНрдЯ рдШрдЯрдХ = рдЙрдерд▓рд╛ (...)
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдШрдЯрдХ.рдбреАрдмрдЧ ())

рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рддрдХ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@ivandosreisandrade рдореИрдВ runInBand рдлреНрд▓реИрдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп рдореИрдВ рдЕрдиреНрдп рджреЗрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╡рд╛рдкрд╕ рдХреБрдЫ рдРрд╕реА рдЪреАрдЬ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯ рдЖрдпрд╛ рд╣реВрдВ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рд▓реА рдЬрд╛рдПрдЧреА рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдЕрднреА рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред --runInBand рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреЛрдб @ 12 рдФрд░ рдирд╡реАрдирддрдо рдордЬрд╝рд╛рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╡реЗрдм рджреЗрд╡ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рдлреА рдХрдард┐рди рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдореИрдВ рдХрдо рд╕реЗ рдХрдо рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореЗрд░рд╛ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ

@ u84six рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?
рдкреЛрд╕реНрдЯ рдкрд░ рдореЗрд░реЗ рдЙрддреНрддрд░ рдХрд╛ рд▓рд┐рдВрдХ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
https://github.com/facebook/jest/issues/2441#issuecomment -552368939

рдЪрд┐рдпрд░реНрд╕

@ivandosreisandrade рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ (рдЬреИрд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛), рддреЛ рдпрд╣ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЙрд▓ рддреНрд░реБрдЯрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛред рдЕрдЧрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рдмреАрдд рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд▓реЙрдЧ рджреЗрдЦреВрдВрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

@ivandosreisandrade рдЖрдкрдХрд╛ package.json рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

npm рдкрд░реАрдХреНрд╖рдг --runInBand -t "рдорд╛рдИ рдЯреЗрд╕реНрдЯ рдиреЗрдо"

рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ package.json рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ

" рдЯреЗрд╕реНрдЯ: рдпреВрдирд┐рдЯ ": "рдЬреЗрд╕реНрдЯ --verbose"

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --verbose рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдХрд┐рддрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ!

@ivandosreisandrade рдЖрдкрдХрд╛ package.json рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдореИрдВ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

npm рдкрд░реАрдХреНрд╖рдг --runInBand -t "рдорд╛рдИ рдЯреЗрд╕реНрдЯ рдиреЗрдо"

рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ package.json рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ

" рдЯреЗрд╕реНрдЯ: рдпреВрдирд┐рдЯ ": "рдЬреЗрд╕реНрдЯ --verbose"

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --verbose рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдХрд┐рддрдирд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ!

@u84six рдпрд╣ рдореЗрд░рд╛ package.json рд╣реИ

"scripts": {
    "test": "jest test --coverage",
    ... 
},
...
"jest": {
    "verbose": true,
    "testMatch": [
      "**/tests/**/*.js?(x)"
    ],
    "moduleFileExtensions": [
      "js"
    ],
    "moduleDirectories": [
      "node_modules"
    ]
  }

рдЖрдкрдХрд╛ рдЯреЗрд╕реНрдЯрдореИрдЪ рдпрд╛ рддреЛ .js рдпрд╛ .jx рдпрд╛ .jsx рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХрд╛ рдореЙрдбреНрдпреВрд▓рдлрд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ .js рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ :man_shrugging:
рдпрд╣реА рд╡рд╣ рдлрд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреНрдпреЛрдВ рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг рд╣реИ - 13.12.10, npm -6.14.4
рдордЬрд╝рд╛ -24.9.0

рдпрд╣рд╛рдВ рдореЙрдХ-рдПрдлрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкрд░реАрдХреНрд╖рд╛ рджреА рдЧрдИ рд╣реИ
'mock-fs' рд╕реЗ рдирдХрд▓реА рдЖрдпрд╛рдд рдХрд░реЗрдВ;
рдЖрдпрд╛рдд * 'fs' рд╕реЗ fs рдХреЗ рд░реВрдк рдореЗрдВ;
'рдкрдВрдк' рд╕реЗ рдЖрдпрд╛рдд рдкрдВрдк;
рдЖрдпрд╛рдд * 'рдЙрдкрдпреЛрдЧ' рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ;

describe('Test suite for bucket functionality', () => {
    beforeEach(() => {
        mock({
            'sample-file.txt': 'Content of the sample file',
            'sample-upload.txt': ''
        });
    });
    test('test upload', async () => {
        const filePromisy = util.promisify(fs.readFile);
        pump(fs.createReadStream('sample-file.txt'), fs.createWriteStream('sample-upload.txt'));
        filePromisy('sample-upload.txt').then(data => {
                       // when I do a console.log() here I get a warning stating that before I do an expect of data , I get a warning (no longer an error) stating that -_Cannot log after tests are done._

        }).catch(err => {

        });



    });
    test('test download', () => {

    });
});

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЗрд╡реЗрдВрдЯ-рд▓реВрдк рдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реИ рдЬрд╣рд╛рдВ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЛ рдЯреЗрд╕реНрдЯ рд╕реНрдкреЗрдХреНрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╣реА рдЕрдЧрд▓реА рдЯрд┐рдХ () рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХрдВрд╕реЛрд▓ рдУ/рдкреА рдХрд░рдиреЗ рдФрд░ рд░рд┐рдХ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рд░ рдПрдХ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдлрд╛рдЗрд▓ рд╡рд╛рдкрд╕ рдХрд░рдиреА рд╣реИ рдкреНрд░реЙрдорд┐рд╕ рдиреЗ рдордЬрд╛рдХ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рди рд╕рдХреЗ рдХрд┐ рдЖрдкрдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрдм рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдЕрд╕реНрдерд╛рдпреА expect рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рддреЛ, рдХреЗ рдмрдЬрд╛рдп console.log(sketchyVariable) , рдХрд╛ рдЙрдкрдпреЛрдЧ expect(sketchyVariable).toEqual(42) ред

рдиреЛрдб 8 рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛:
console.log рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреАрдмрдЧ рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

const util = require('util')
const myLogger = util.debuglog('myloggername')
myLogger('foobar')

рдФрд░ рдбреАрдмрдЧрд░ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдордЬрд╛рдХ рд╢реБрд░реВ рдХрд░реЗрдВ:

NODE_DEBUG=myloggername npm test -t "My Test Name"

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рджреЗрдЦрддреЗ рд╕рдордп рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдЫрд┐рдЯрдкреБрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдореИрдВ рд╕рднреА рд▓реЙрдЧ рджреЗрдЦрддрд╛, рдХрднреА-рдХрднреА рдХреЛрдИ рдирд╣реАрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рд░ рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рджреЗрдЦрддрд╛ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЛ рдирд╣реАрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдЪрд▓рддрд╛ рддреЛ рдореБрдЭреЗ рдХреБрдЫ рдЕрд▓рдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ред рдореИрдВ

--verbose=false рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред рдореИрдВ рдЗрд╕рд╕реЗ рд╣реИрд░рд╛рди рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХрд╣реАрдВ рднреА verbose рд╕реЗ true рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХрд▓ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЬреЗрд╕реНрдЯ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ true рд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ ред рдореИрдВ

рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓ рд░рд╣реА рд╣реИ рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрдп рд╣реЛрдЧреАред

https://jestjs.io/docs/en/configuration#verbose -boolean

рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдереНрд░реЗрдб: https://stackoverflow.com/questions/48695717/console-log-statements-output-nothing-at-all-in-jest

рдЬреЗрд╕реНрдЯ рдХрдИ рд╕реНрддрд░реЛрдВ рдкрд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд▓реЙрдЧ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдФрд░ рджрд┐рдЦрд╛рдПрдВ
  • рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдФрд░
  • рдХреИрдкреНрдЪрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред

рдпрд╣ рдмрд╛рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрдЯрд┐рд▓ рдирд╣реАрдВред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ, рд╡реЗ рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рдХреИрдкреНрдЪрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╕реЗрди рдСрд░реНрдбрд░ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдпрд╣ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛрдб рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрд╛, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдП рд╣реИрдВред

рдХрд╣рд╛рдиреА рдХрд╛ рдиреИрддрд┐рдХ рд╣реИ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рди рдХрд░реЗрдВред рдХрднреАред рдпрджрд┐ рдЖрдк рдПрдХ рд▓реЙрдЧрд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдХрд░реЗрдВред рдЕрдЧрд░ рдореИрдВ рдЪрд╛рд╣реВрдВ рддреЛ рдореИрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рд╡реИрд╢реНрд╡рд┐рдХ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрд▓реБрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ https://aka.ms/o0ukef


рд╕реЗ: рдИрдорд╛рдирджрд╛рд░реА рд╕реВрдЪрдирд╛рдПрдВ @github.com
рднреЗрдЬрд╛ рдЧрдпрд╛: рдмреБрдзрд╡рд╛рд░, рдЕрдЧрд╕реНрдд 12, 2020 12:33:23 рдЕрдкрд░рд╛рд╣реНрди
рдкреНрд░рддрд┐: facebook/jest [email protected]
рд╕реАрд╕реА: рдХреНрд░рд┐рд╕ рдЧреНрд░рд┐рдореНрд╕ [email protected] ; рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВ @noreply.github.com
рд╡рд┐рд╖рдп: рдкреБрди: [рдлреЗрд╕рдмреБрдХ/рдЬреЗрд╕реНрдЯ] рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (#2441)

рдЬреЗрд╕реНрдЯ рдХрдИ рд╕реНрддрд░реЛрдВ рдкрд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд▓реЙрдЧ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЛрдИ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рднреА рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрд╛рдд рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/jest/issues/2441#issuecomment-673011577 рдкрд░ https://github.com/notifications/unsubscribe-auth/AAFCNBK5MQEA6AJHEC52ZWDSALG6HANCNFSM4C2VWUXQ рдХреЛ рдЕрдирд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм

@ рд╣реИрд▓рд┐рд╕ рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рдЪрд╛рд░ рд╡рд░реНрд╖реЛрдВ рддрдХ рдЬреЗрд╕реНрдЯ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд░рд╣реА рд╣реИред рдирддреАрдЬрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХрд╛ рдореБрдЦреНрдп рдирд╛рдЯрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рддреЛрдбрд╝рдХрд░ рдЦреБрд╢ рд╣реЛрдирд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред jest.mock(...) рдХреЗ рдСрдЯреЛрд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдкрд░реАрдХреНрд╖рдг рдЙрдирдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдирд╣реАрдВ рд╣реИрдВ; рдЗрд╕реА рддрд░рд╣ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ console.log рдЬреИрд╕реА рдХрд┐рд╕реА рднреА рд╢реВрдиреНрдп-рд╡рд╛рдкрд╕реА рд╡рд╛рд▓реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреБрд░реА рдмрд╛рдд рд╣реИ? рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрд╕реНрдЯ рдЕрддреНрдпрдзрд┐рдХ рд╕рдлрд▓ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдореЗрдВ рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ 90% рдЬреЗрд╕реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдХреЛрдб рдПрдПрд╕рдЯреА-рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЙрдХ рдХреЙрд▓реНрд╕ рдХреЛ рдлрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ 90% рдЬреЗрд╕реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдХреЛрдб рдПрдПрд╕рдЯреА-рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЙрдХ рдХреЙрд▓реНрд╕ рдХреЛ рдлрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрдпрд╛

console.debug рдпрд╛ console.error рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

рдЖрдк --useStderr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ

https://nodejs.org/api/process.html#process_a_note_on_process_i_o

рдореИрдВ рдЖрдЬ рдлрд┐рд░ рд╕реЗ рдЗрд╕рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ --useStderr рдзреНрд╡рдЬ рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рддрдп рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж @diomalta!

рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рд╕реЗ рдЬреВрдЭ рд░рд╣рд╛ рдерд╛, рдЬрдм рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реБрдЖ рддреЛ рд▓реЙрдЧ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реЗ рдереЗред

рдореИрдВ рдкрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ рдореЗрд░реА console.log рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП verbose: true рдореЗрдВ рдореЗрд░реЗ jest.config

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

emmby picture emmby  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Antho2407 picture Antho2407  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jardakotesovec picture jardakotesovec  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paularmstrong picture paularmstrong  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samzhang111 picture samzhang111  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ