рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдПрдХ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред
рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ console.log
рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ jsdom
рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг stdout рдкрд░ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ https://repl.it/languages/jest рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдФрд░ рдпрд╛ рддреЛ рдПрдХ repl.it рдбреЗрдореЛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдпрд╛ рдЧрд┐рдЯрд╣рдм рдкрд░ рдПрдХ рдиреНрдпреВрдирддрдо рднрдВрдбрд╛рд░ рд╣реИ рдХрд┐ рд╣рдо yarn install
рдФрд░ yarn test
ред
yarn test
рдЪрд▓рд╛рдПрдБtestEnvironment
рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ node
рдмрджрд▓реЗрдВyarn test
рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБрдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╣рдореЗрд╢рд╛ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧрд╛ред
рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рд╕рдЯреАрдХ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЬреЗрд╕реНрдЯ, рдиреЛрдб, рдпрд╛рд░реНрди/рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВред
рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рдореЗрдВ package.json
рдФрд░ yarn.lock
ред рдореИрдВ рдиреЛрдб 7.3.0 рдФрд░ рдпрд╛рд░реНрди 0.18.1 . рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ
рдмрд╕ 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 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдХреНрдпрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╣реЛ рд░рд╣реА рд╣реИ, рд╕рд╛рде рд╣реА рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рднреА рд╣реИред рдЕрдЧрд░ рд╡рд╣ рдордЬрд╛рдХ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧрд╛рдЗрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдРрд╕рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрдкрдиреЗ рд▓реЙрдЧ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред
рдпреЗ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Mercurial (hg) рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдЖрдкрдХреЗ рд▓рд┐рдП рдФрд░ рдЬреИрд╕рд╛ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ; рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдпрд╛ рд╕реЗрдЯрдЕрдк рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдУрдХреЗ рдХреВрд▓ - рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдЖрднрд╛рд╕ рд╣реИ рдХрд┐ рдЬрдм рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ рддреЛ рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдХреЗрд╡рд▓ 1 рд╣реА рд╣реЛ? рдпрджрд┐ рдЖрдкрдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ "рдУрд╣, рдпрд╣ рдХрднреА-рдХрднреА рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ" - рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рдореИрдВ рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо 2 рдлрд╛рдЗрд▓реЗрдВ рдЪрд▓ рд░рд╣реА рд╣реЛрдВред :)
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдерд╛)ред рдореИрдВ рдиреЛрдб 6.9.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ --forceExit рдзреНрд╡рдЬ рдХреЛ рднреА рд╕рдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ --forceExit рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ --forceExit рдзреНрд╡рдЬ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ @thisissami рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд▓реЙрдЧрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ gulpfile.js рдХреЗ рднреАрддрд░ рдЬреЗрд╕реНрдЯ-рдХреНрд▓реА (jest.runCLI) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдерд╛ рдФрд░ рдпрд╣ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рдЧрд▓ рд░рд╣рд╛ рдерд╛ред рдЕрдЧрд░ рдореИрдВ рд╕реАрдзреЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдЕрдм рдореБрдЭреЗ рдХреБрдЫ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдЕрднреА рддрдХ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЕрдиреНрдпрдерд╛ рдореИрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред
1) рдЬреЗрд╕реНрдЯ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ
2) рдЬреЗрд╕реНрдЯ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ (рдпрд╣рд╛рдБ рдмреНрд▓рд┐рдВрдХ рди рдХрд░реЗрдВ)
3) рдЬреЗрд╕реНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдмреИрдХ рдЕрдк рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдХрднреА-рдХрднреА рд╕рднреА рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдХреБрдЫ рдФрд░ рдХрднреА-рдХрднреА рд╕рднреАред
4) рдЬреЗрд╕реНрдЯ рдЕрдЧрд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ (рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рд▓рд╛рдЗрдиреЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред
рдордЬрд╝рд╛ v18.1.0
рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИред
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХрднреА-рдХрднреА рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдпрд╣ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ (рдЕрд╕рдлрд▓ рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░) рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдкрд░реАрдХреНрд╖рдг рдЖрдЙрдЯрдкреБрдЯ рд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдзрд┐рдХ:
рдФрд░ рдХрднреА-рдХрднреА рдпрджрд┐ рдореИрдВ 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
рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдпрд╣ рдФрд░ рднреА рдЫреЛрдЯрд╛ рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ:
рдореИрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рдЪреБрди рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреЛ рд╣реБрдИ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдПрдХ рдШрдЯрдХ рдореЗрдВ 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) рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред
рдЖрдк рдпрд╣рд╛рдВ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ . рд╕реЗ рдкрд╣рд▓реЗ
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ - рдПрдХ рджреВрд╕рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (<0.2s)
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЗ рдКрдкрд░ рдкреЗрдВрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж
рдпрд╣ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдордЬрд╛рдХ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдлреЗрд╕рдмреБрдХ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рд╣реИ рдФрд░ рдЕрдм рдпрд╣...
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЬреЗрд╕реНрдЯ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЖрдкрдХреЗ рдХрдВрд╕реЛрд▓ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рддрд░рд╣ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╡реЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рди рд╣реЛ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реЗ рд╣рд░ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рд▓реЙрдЧ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рди рдХрд░ рд╕рдХреЗрдВред
рдЖрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдмрдВрдж рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ? рдЕрдЧрд░ рдореБрдЭреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдкрд╣рд┐рдпреЗ рдЪрд╛рд╣рд┐рдП рддреЛ рдореИрдВ рдХреЛрдгреАрдп 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
рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реА рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ() рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп)ред
рдпрджрд┐ рдЬреЗрд╕реНрдЯ рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ () рдЕрдкреЗрдХреНрд╖рд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
--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
рдореИрдВрдиреЗ рдЗрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рднреА рдХрд┐рдпрд╛ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ:
рджреВрд╕рд░реЛрдВ рдХреА рддрд░рд╣- --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
рдХрдерди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИред рд╡рд░реНрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЬрд┐рд╕реЗ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рдпрд╣ 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
рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред
рд╣рдорд╛рд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг:
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ [рдкрд╛рд╕] рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдкрд┐рдЫрд▓реЗ 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 рдзреНрд╡рдЬ рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдкрд░реАрдХреНрд╖рдг рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╢реВрдЯ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐: рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рдПрд▓рдЬреА рдЕрдиреНрдп рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдЕрдВрдд рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рджреЗрдЦрддреЗ рд╣реИрдВред
рдореЗрд░рд╛ рдиреЛрдб рдФрд░ рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг:
node v8.16.0
npm 6.4.1
рдореИрдВ рдЕрдВрдд рдореЗрдВ рдПрдХрд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдкрд░ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдм рддрдХ рдореЛрдЪрд╛/рдкреНрд░реЙрдХреНрд╕реАрдХреНрд╡рд╛рдпрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдИ
console.log
рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ (рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдФрд░ рдЗрд╕ рдкрд░ рдХрдИ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ ...
"jest": "^24.9.0",
рд╕рд╛рде рдиреЛрдб 8/10 рдПрд▓рдЯреАрдПрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
Ive рдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╣рд░ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред
рдмрд╕ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ:
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",
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐: рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реЛрд▓.рдПрд▓рдЬреА рдЕрдиреНрдп рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдЕрдВрдд рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рддреНрд░реБрдЯрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рджреЗрдЦрддреЗ рд╣реИрдВред
рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдХреА рдЬрд╛рдБрдЪ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдареАрдХ рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдореЗрд░рд╛ рд▓реЙрдЧ рдЙрддрд░рд╛ рдерд╛ред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░/рдЙрд╕реА рддрд░рд╣ рдирд╣реАрдВред
рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд┐рддрдирд╛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рджрд┐рди рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рдВрдЧ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ
--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
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдиреЛрдб v4.4.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореЗрд░рд╛ рд╕рдВрдмрдВрдз рд╣реИ -
console.log
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдирд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореИрдВ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдмрджрд▓реА рдЧрдИ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдХрдИ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд▓ рд░рд╣реА рдереАрдВ, рдФрд░ рдЕрдм рдХреЗрд╡рд▓ рдПрдХред рдореБрдЭреЗ рджреЗрдЦрдиреЗ рджреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗconsole.log
рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред