рдореИрдВ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреИрдЯрд░реНрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреВрдВ рдЬреЛ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдПрдХ рдЙрдЪрд┐рдд рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рди рдХрд░реЗрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ ignore
рдореЗрдВ glob
ignore
рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
рд╡рд┐рдЪрд╛рд░? рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдЬрд▓реНрджреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рдЖрдк рдмреЗрд╣рддрд░ рджреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛
рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рд╡рд╣реА рдореИрдВрдиреЗ рдХрд┐рдпрд╛ред
Am 04.03.2015 15:52 schrieb "рдХрд╛рдЗрд▓ рдкреА рдбреЗрд╡рд┐рд╕" рд╕реВрдЪрдирд╛рдПрдВ @github.com:
рдореИрдВ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреИрдЯрд░реНрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдХрд░ рд╕рдХреВрдВ
рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рдЬрдм рддрдХ рд╡реЗ рдПрдХ рдЙрдЪрд┐рдд рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ рддрдм рддрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ
рдкреИрдЯрд░реНрдиредрдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдЬреЛ рдЙрдкреЗрдХреНрд╖рд╛ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
рдЧреНрд▓реЛрдм рдореЗрдВредрд╡рд┐рдЪрд╛рд░? рдЕрдЧрд░ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдЬрд▓реНрджреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mochajs/mocha/issues/1577
рдореИрдВ (рдФрд░ рдЕрддреАрдд рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рд╣реИ рдХрд┐ рдЧреНрд▓реЛрдм рдХреА рдЕрдирджреЗрдЦреА рд╡рд╣реАрдВ рд╣реИред
рдЧреНрд▓реЛрдм рдЗрдЧреНрдиреЛрд░ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХ рдЬреЛрдбрд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рд╕рд┐рд░реНрдл рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рдХреЛрдИ рдЖрдкрддреНрддрд┐?
рдореБрдЭреЗ рдмрд╕ рдЗрд╕рдХреА рднреА рдЬрд╝рд░реВрд░рдд рдереА рдФрд░ рдпрд╣ рджреЗрдЦрдХрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдореЛрдЪрд╛ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ "testApp" рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореЛрдЪрд╛ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ mocha.opts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЬреЛрдбрд╝ рд╕рдХреЗрдВ, рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрде рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдЕрдиреНрдп рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЙрдк-рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХреЗрдВред
рдЬрдм рд╣рдо testApp рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЗрдкреЛ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣рд╛рдпрдХ рд╣реИред
@KylePDavis @toddbluhm
рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл рдпрд╣реА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
$ mocha $(find test/ ! -path '*testApp*')
рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд░реЛрдорд╛рдВрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ recursive
рдзреНрд╡рдЬ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдбрд╝ рдкрд░ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, Makefile
, Gruntfile.js
, gulpfile.js
, рдЖрджрд┐, рдЖрджрд┐ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @boneskull рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рдмрдирд╛рддрд╛ рд╣реИ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рджреА рдЧрдИ рд╣реИ:
$ tree .
.
тФФтФАтФА spec
тФЬтФАтФА fixtures
тФЬтФАтФА integration
тФФтФАтФА unit
4 directories, 0 files
рдЖрдк рдмрд╕ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред Json рддрд╛рдХрд┐ рдЖрдк рдмрд╕ npm test
рдЪрд▓рд╛ рд╕рдХреЗрдВ
"scripts": {
"test": "mocha spec/unit spec/integration"
}
рдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреИрд╕реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде:
$ tree .
.
тФФтФАтФА src
тФФтФАтФА models
тФЬтФАтФА user.js
тФФтФАтФА userSpec.js
2 directories, 2 files
рдЖрдк @boneskull рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдЪрд╢реНрдорд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдХреЗрд╡рд▓ Spec
рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдЪрд▓рд╛рдПрдЧрд╛)
"scripts": {
"test": "mocha $(find src -name '*Spec.js')"
}
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдлрд┐рдХреНрд╕реНрдб :)
@danielstjules рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╛рдо рдореЗрдВ Spec
рд╕рд╛рде рдХрд┐рд╕реА рднреА dir рдХреЛ рдорд╛рд░рд╛ рдЬрд╛рдПрдЧрд╛ред рд╢рд╛рдпрдж рдЖрдк -name '*.spec.js'
рд╣рд╛рдБ, рддреБрдо рд╕рд╣реА рд╣реЛ! рджрд┐рдорд╛рдЧрд╝ рдХрд╛ рджрд╣реАред рдпрд╣ рдмрд╛рдд рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рдХрдорд╛рдВрдб:
"scripts": {
"test": "mocha $(find src -name '*Spec.js')"
}
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдПрдХ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ: рдореИрдВ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлреАрдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣реИ рдЬрд┐рдирдореЗрдВ рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдирд╛рдордХрд░рдг рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рдЧрд╛рддрд╛рд░ file
рддрд░реНрдХ рдпрд╛ grep
рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ node_modules
рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА - рдЧреБрд▓-рдореЛрдЪрд╛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд╕рд┐рд░реНрдл gulp
рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред
рдореИрдВ рдПрдХ рдкрд▓ рдФрд░ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ +1 рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдЙрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рдХрд▓реНрдкрдирд╛ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
main.js
main.spec.js
utilities.js
utilities.spec.js
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрдЧрдарди рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЦреБрджрд╛рдИ рдмрдирд╛рдо рдкрд░реАрдХреНрд╖рдг рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ; рдЖрдк рд╣рдореЗрд╢рд╛ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдареАрдХ рдмрдЧрд▓ рдореЗрдВ рдмреИрдард╛ рд╣реЛ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреА рд╣реИ рдФрд░ рдореЗрд░реА рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛред
рдореЗрд░реЗ рдЧреИрд░-рдорд╛рдирдХ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд╣ рд╕рднреА рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рд╕рднреА рдлреЛрд▓реНрдбрд░ рдиреЛрдб_рдореЙрдбрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВ; рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╡реИрд╕реЗ рднреА рдЕрдзрд┐рдХ рд╕рд╣рдЬ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рдЧрднрдЧ рд╕рднреА рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддрд╛рдХрд┐ рд╕рдорддрд╛ рдЕрдЪреНрдЫреА рд▓рдЧреЗред
рдирдорд╕реНрддреЗ, рдореЗрд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг *.test.js
рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рд╕рднреА tests
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рднреА рдореЛрдЪрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрде рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИ рдЬреЛ ./test/**/*.js
ред рдореИрдВ рдЙрд╕рдХреЛ рдХреИрд╕реЗ рдХрд░реВ?
рдпрд╣рд╛рдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЪрд▓ рд░рд╣реЗ рдкрд░реАрдХреНрд╖рдг рд╡реАрд╕реАрдПрд╕ рдореЗрдВ рдмрд╣реБрдд рд╢реЛрд░ рдкреИрджрд╛ рдХрд░реЗрдВрдЧреЗред
@calebthebrewer рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ gulp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ;) рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
+1 @calebthebrewer
рдХреЛрдгреАрдп 2.0 рдФрд░ рдкреЙрд▓рд┐рдорд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЛрдб рдореЗрдВ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ @ рдХреНрд░рд┐рд╕рд┐рд╕рдЧреЗрд▓ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЕрдкрдиреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдмрдВрдбрд▓реЛрдВ рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдПрдХ рд╕рд╛рдл, рдореЙрдбреНрдпреВрд▓рд░, рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо рд░рдЦрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ q
рд╡рд╛рджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рджреВрд░рджрд░реНрд╢рд┐рддрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ:
import q from 'q';
import authRouterTest from '../app/routes/_authentication.router.e2e.js';
import productRouterTest from '../app/routes/_product.router.e2e.js';
import productModelTest from '../app/models/product.model.spec.js';
// Dynamically constructed sequence of functions
let funcs = [ productModelTest(), authRouterTest(), productRouterTest() ];
// This function takes an array of promise-producing functions and
// runs them sequentially.
let execTests = () => {
let result = q();
funcs.forEach((f) => {
result = result.then(f);
});
return result;
};
// Execute tests
execTests();
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдк рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╣реАрдВ рд╕реЗ рднреА рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ test/
рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдЖрдк рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░ рд╡рд╛рджреЗ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ
import q from 'q'
export default () => {
let Q = q.defer();
describe('something', () => {
it('should', (done) => {
...
});
});
describe('something', () => {
it('should', (done) => {
...
});
it('should', (done) => {
...
Q.resolve('test complete');
});
});
return Q.promise;
};
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╣рдореЗрдВ рдЕрднреА рднреА рдЧреНрд▓реЛрдм рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдмреИрд╢ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
+1
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ node_modules
рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред Exclusion
recursive
рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╕рд╛рдереА рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред
@godspeedelbow рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ node_modules
рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирддрд╛ред
FWIW, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдорд┐рд▓реА рд╣реИрдВ рдЬрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ (рдЬреБрдбрд╝рдирд╛рд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ IMHO рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ)ред
node_modules
рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рддрдм рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдпрд╛ рддреЛ рдХреБрдЫ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рдореИрдВ рдЬрд╣рд╛рдБ рдореИрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЕрдЧрд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реВрдБ, рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ рдмрдирд╛рдо рдЙрдиреНрд╣реЗрдВ рдПрдХрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдХреЛрдб рд╕реЗ рджреВрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ) рдпрд╛ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рдПрдХ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рдХреА рдХреБрдЫ рд╢рд╛рдорд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ (рд╢рд╛рдпрдж рд╡реЗ рдЖрдВрддрд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдПрдирдкреАрдПрдо рд░реЗрдкреЛ рдореЗрдВ рдирд╣реАрдВ, рдХрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрд╢реНрд░рд┐рддреЛрдВ рдХреЗ рднреАрддрд░ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ред
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реЗ рдПрдХ рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреА рдЬреНрдпрд╛рджрд╛ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд░реНрдорд┐рдирд▓ рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдореИрдВ рдЗрд╕реЗ рдХрд╛рдВрдЯрд╛ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдмрд╕ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░реВрдБрдЧрд╛ рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдкреИрдЯрд░реНрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рд╣реИрдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдореЛрдЪрд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЦреЛрдЬрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред
@ рдХреНрд░рд┐рд╕рд┐рд╕рдЧреЗрд▓ рдЖрдк рд╣рдореЗрд╢рд╛ src/**/*.js
рдФрд░ src/**/*.spec.js
ред рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреЛ рдФрд░ рдЬрдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ред рддрдереНрдп рдХреА рдмрд╛рдд, рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрд╕ рдЗрд╕реЗ рдЦреБрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓реЗрдВред рдпрд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдкреИрдЪ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рддрд░реНрдХ рдПрдХ рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб рд░рд╛рдЬреНрдп рдорд╢реАрди рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рд╣реИ)ред
рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдореЛрдЪрд╛, рдЬреИрд╕реНрдореАрди, рдЯреЗрдк, рдЖрджрд┐ рдХрд╛ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рд╣реЛрдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИред рдпрд╣ рдЕрднреА рднреА рдЦрд┐рд▓реМрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдПрдЯреАрдПрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
рдореИрдВ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдврд╛рдВрдЪреЗ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдЪрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬрдм рддрдХ рдореИрдВ рдЙрди рд╕реНрдерд┐рд░ рд╣реЛ рдЧрдпрд╛ (рдЬрдм рд╡реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдкреАрдЖрдИ рдЕрдм рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрдм рд╕реЗ рдореИрдВ рдЦреБрдж рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдЬреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ) рдЬрдм рддрдХ рдореИрдВ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП Chai рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред
рд╣рд╛рдБ, рдпрд╣ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕рдВрд░рдЪрд┐рдд рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рднреА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпреБрдХреНрддрд┐ рдФрд░ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдЬреЛрдбрд╝реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреАред рдореИрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЙрд╕ рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЖрддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдмрд╣рд┐рд╖реНрдХрд░рдг рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдкреИрдЯрд░реНрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЛрдЪрд╛ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреА рдЫрд╛рдк рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдХрдЖрд░реНрдбреНрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдВрдж рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рдерд╛ рдмрдирд╛рдо рдкреИрдЪ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ред рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рдореЛрдЪрд╛ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреИрдЪ рдХреЛ рдХреНрд░реИрдВрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
@ рдХреНрд░рд╛рдЗрд╕реАрдЧреЗрд▓ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкреИрдЪ рдХреЛ рдХреНрд░реИрдВрдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╡рд┐рд▓рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрдирдЬрд╛рдиреЗ, рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрд╡рдЬ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред FWIW, _this_ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рд╣реЛрдирд╛ рдмрд╛рдХреА рд╣реИ, рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрд╣реБрдд рдХрдордЬреЛрд░ рдерд╛ рдпрджрд┐ рдЖрдк рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдирд┐рд░реНрднрд░ рдорд╛рдирддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрдПрдирдпреВ find
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдпрд╣ рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗрдм рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛ рд░рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреЛрдб рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрдЧрд╛ ( рдмрдВрдж рдореБрджреНрджрд╛ , рдкреНрд░рдЧрддрд┐ рдореЗрдВ рдкреАрдЖрд░ )ред
рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдХреЗ рд▓рд┐рдП +1ред рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреЛ рдореИрдВрдиреЗ рдмрдирд╛рдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ app
рдпрд╛ src
рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдирд╛рдорд┐рдд рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рдПрдХ рдЪрд░ рд░рд╛рд╢рд┐ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
.mochaignore
рдпрд╛ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ **/*.spec.js
рдЧреНрд▓реЛрдм рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддрд╛ рдерд╛ рдФрд░ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ node_modules
рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рдЧрднрдЧ рд╕рднреА рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ .npmignore
, .gitignore
, .jshintignore
, рдФрд░ jscs .jscsrc
рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдпрджрд┐ рдореЛрдЪрд╛ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЬреБрд░реНрд░рд╛рдм рджрд░рд╛рдЬ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджреВрд░ рдШрдЯрдХ / рд╕реБрд╡рд┐рдзрд╛ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрдЧрдарди рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред
@isiahmeadows рдЬреИрд╕рд╛ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП services/
, routes/
, рдЖрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ node_modules
рд╣реИред рдореИрдВ рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рд╣реБрдЖ рдЬреЛ рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ node_modules
рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреАрд╕рд░рд╛ рдЯреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди, рдпрд╛ gulp, рдпрд╛ рдХреБрдЫ рдФрд░) рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╣реЛред
рдореИрдВ рдЗрд╕реЗ рдореЛрдЪрд╛ рдореЗрдВ рдЦреБрдж рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдЕрдЧрд░ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ :)
@godspeedelbow @adambuczynski рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди :)
"scripts": {
"test": "mocha $(find . -name '*.spec.js' ! -ipath '*node_modules*')"
}
рд╣рд╛рдп @danielstjules рдзрдиреНрдпрд╡рд╛рдж! рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ find . -name '*.spec.js' ! -ipath '*node_modules*'
рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдкрд╛рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдЯрд░реНрди рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '*.spec.js'
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП _all_ js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдХрд░реЗрдВ, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
"scripts": {
"test": "mocha $(find . -name '*.js' ! -ipath '*node_modules*')"
}
@danielstjules рдЪреАрдпрд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдЬрдмрдХрд┐ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдбрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЗрд╕ рдмреАрдЪ, рдореИрдВрдиреЗ app
рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХреВрдВ рдФрд░ node_modules
рдпрд╛ рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди
@danielstjules рд╣рд╛рдБ, рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓реЗрдВ *.spec.js
рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдпрд╣ рдкрд╣рд▓реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЬрдм рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж * NIX рдХрд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ред
рдореИрдВ рдЗрд╕реЗ рдЖрдЧрд╛рдореА рдкреНрд░рдореБрдЦ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ .mochaignore
рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдореБрдЭреЗ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ
@boneskull рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓реЗ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдкрд╛рд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ "рдорд╛рдирдХ" .mocharc
рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ mocha.opts
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред test
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ?
рдЗрд╕рд╕реЗ рдореЛрдЪрд╛ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдЕрдиреБрд░реВрдкред рд╕рд╛рде рд╣реА, рдпрд╣ рд╣реИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдордЬрдмреВрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдПрдХ test
рдлрд╝реЛрд▓реНрдбрд░ рдмрд╕ рдХреЗ рд▓рд┐рдП mocha.opts
ред (рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ)ред
@adambuczynski рдмрд┐рд▓реНрдХреБрд▓ред рдореИрдВ mocha.opts
рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ
@adambuczynski рд╢рд╛рдирджрд╛рд░ рдЯрд┐рдкреНрдкрдгреАред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдореИрдВ рдПрдХ рдорд╛рдирдХ .mocharc рд╡рд┐рдХрд▓реНрдк рдлрд╝рд╛рдЗрд▓ рднреА рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдореИрдВ рдЕрдм рдкрд░реАрдХреНрд╖рдг рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд░рдЦрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
+1, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣рд┐рд╖реНрдХреГрдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИред
@adambuczynski @boneskull рдкреНрд░рд▓реЗрдЦрди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА рдСрдкреНрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрде рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --opts
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ mocha --opts .mocharc
рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╕рд╛рднрд╛рд░ @GRUBES рдЕрдВрдд рдореЗрдВ, рдореИрдВ test
рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд░рд╣рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЛ рд╡рд╣рд╛рдБ рд░рдЦрддрд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред
рдЧреНрд▓реЛрдм рдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдирджреЗрдЦрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдмрд╣рд┐рд╖реНрдХреГрдд рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдЗрд╕реЗ рдЧреНрд▓реЛрдм рдХреА рдЕрдирджреЗрдЦреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдирд╛ рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдореИрдЪреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЯрд░реНрди рдпрд╛ рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХреА рдПрдХ рд╕рд░рдгреА рдЬреЛрдбрд╝реЗрдВред рдиреЛрдЯ: рдЕрдирджреЗрдЦрд╛ рдкреИрдЯрд░реНрди рд╣рдореЗрд╢рд╛ рдбреЙрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ: рд╕рд╣реА рдореЛрдб, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИред :-)
@ inf3rno BTW, рдпрд╣ рд╢рд╛рдпрдж рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреИрда рдЧрдпрд╛ рдФрд░ рдкреИрдЪ рд▓рд┐рдЦрд╛ рдерд╛ред
@isiahmeadows рд╕реБрдиреЛ, рд▓реЗрдХрд┐рди рд╡рд╣ рдореБрдЭреЗ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред : рдбреА
рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдПрдХ рдкреАрдЖрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдореБрдЭреЗ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ test
рдФрд░ test-integration
рдХреЗ рд▓рд┐рдП рдХрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ рдХреЙрд▓реЛрдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛
рд╢рд╛рдпрдж --exclude
рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдпрд╛ mocha test/*.js !test/_*.js
рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
рд╕рдордЭреЗ рдЧреНрд▓реЛрдм рдЖрдЙрдЯ: mocha "./{,!(node_modules)/**/}*.test.js"
рд╕рднреА * .test.js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдиреЛрдб_рдореЙрдбрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдФрд░ mocha "./test/**/!(notThisOne).js"
рдЯреЗрд╕реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдХрд░ notThisnne.js
рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ:
https://github.com/isaacs/node-glob#glob -primer
https://github.com/isaacs/node-glob/issues/62
@ScottFreeCode
рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рджреМрдбрд╝рддреЗ рд╕рдордп рдореБрдЭреЗ рдорд┐рд▓рддрд╛ рд╣реИ
mocha "./{,!(node_modules)/**/}*.test.js"
-bash: !: event not found
рдХреНрдпрд╛ рдЗрд╕ рдЪрд░рд┐рддреНрд░ рдХреЛ рдмрдЪрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
@mdumouchel рд╕рд┐рдВрдЧрд▓ рдХреЛрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдирд╣реАрдВ рддреЛ рд╣рд╛рдБ рдХрд░рддрд╛ рд╣реИред
@isiahmeadows
рдлрд┐рд░ рднреА рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ
node_modules/mocha/lib/utils.js:630
throw new Error("cannot resolve path (or pattern) '" + path + "'");
^
Error: cannot resolve path (or pattern) './{,!(node_modules)/**/}*.test.js'
рдореИрдВ рд╕рд┐рд░реНрдл рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реБрдЖ
mocha $(find . -type d -name node_modules -prune -o -name '*.test.js')
@ mdumouchel рдпрджрд┐ рдЖрдк рд╕рдВрд╕реНрдХрд░рдг 2.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛рдиреА
рдпрд╣ рдЕрдЬреАрдм рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВрдиреЗ рдмреИрд╢ рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рджреЛрд╣рд░реЗ-рдЙрджреНрдзрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ / рднрд╛рдЧрдиреЗ рдХрд╛ рдкрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдмреИрд╢ рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ "рдкрде рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛" рддреНрд░реБрдЯрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрде рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ; рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ ".test.js" рдирд╛рдо рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╕рдВрдЧрдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдХреЙрдкреА рдХрд░рдХреЗ рдЗрд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ ...
# 2173 рджреЗрдЦреЗрдВ
Eslint --ignore-path
(рдФрд░ .eslintignore
) рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рджреЗрдЦреЗрдВ: http://eslint.org/docs/user-guide/command-line-interface#ignoring -files
рдореЛрдЪрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрдорд╛рд▓ рд╣реЛрдЧрд╛: two_hearts:
рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди:
eslint "test/!(fixtures)/**/*.js" "test/*.js"
рдореЗрд░реА рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛
.
тФФтФАтФА src
тФФтФАтФА test
тФФтФАтФА fixtures
тФФтФАтФА data.js
тФЬтФАтФА foo.js
тФФтФАтФА bar.js
рд╕рдорд╕реНрдпрд╛: рдореЛрдЪрд╛ рдореБрдЭреЗ рдПрдХ Error: cannot resolve path (or pattern)
рдЕрдЧрд░ 2 рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХреБрдЫ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ:: рдирд┐рд░рд╛рд╢-рдкреАрдбрд╝рд┐рдд:
рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред
рдпрд╣реА рд╡рд╣ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
--exclude <glob-or-path>
--exclude
рдЙрджрд╛рд╣рд░рдг--exclude
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕реВрдЪреА рдореЗрдВ рдорд┐рд▓рд╛рдПрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо _n_ рдЧреИрд░-рд╡рд┐рдХрд▓реНрдк рддрд░реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рднреА рдЧреНрд▓реЛрдм рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ _additive_ рд╣реИ; рдпрд╣ рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
$ mocha 'src/**/*.spec.js' '!src/forbidden/**/*.spec.js'
рддреЛ рдКрдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ --exclude
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ !
рд▓рд┐рдП рд╕рд┐рд░реНрдл рдЪреАрдиреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, .mochaignore
(# 2036) рд╕рдорд░реНрдерди рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред рдПрдХ 3p рдореЙрдбреНрдпреВрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд╣рдо .gitignore
-рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдЦреАрдВрдЪ рд╕рдХреЗрдВ; рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ ESLint рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред
... рдФрд░ рдпрджрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдмрд┐рдирд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдЧреНрд▓рдмреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ; # 2355 рджреЗрдЦреЗрдВ
рд╣реИрд░рд╛рдиреА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЕрднреА рднреА --ignore-path
рдЬреИрд╕рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ tests
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
+1
рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдлрд╛рдЗрд▓реЛрдВ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ
@isiahmeadows
рдЖрдк рд╣рдореЗрд╢рд╛ src / / .js рдФрд░ src / /.spec.js рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдирд╣реАрдВ, рдЖрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - **/*
рдкреНрд░рддрд┐рдорд╛рди рдорд┐рд▓рд╛рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
EDIT: @ScottFreeCode рдХрд╛ рдЬрд╡рд╛рдм рдиреАрдЪреЗ рд╣реИ
**/*
рдкреНрд░рддрд┐рдорд╛рди рдорд┐рд▓рд╛рди рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рд░рд╛рд╕реНрддреЗ рдЙрджреНрдзреГрдд рд╣реИрдВ ?
+1
рдЬреИрд╕рд╛ рдХрд┐ https://github.com/zinserjan/mocha-webpack/issues/124 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ:
src/
рдЕрдВрджрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕реЗ server.ts
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрдЧ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдЖрдорддреМрд░ рдкрд░ рдХрд╡рд░реЗрдЬ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреЛрд░реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПред
рдореЗрд░реА рд░рд╛рдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдореЛрдЪрд╛ рдХреЛ рдПрдХ рдЕрдирджреЗрдЦреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рдХреЗ рдмрд╛рдж рднреА, рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рдЕрднреА рднреА рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореЛрдЪрд╛ рдХреИрдирди рд╣реИред рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдлрд╝реАрдЪрд░ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрдиреНрдп рд╕рднреА рдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЖрдХрд╛рдВрдХреНрд╖рд╛ рд░рдЦрддреЗ рд╣реИрдВ? рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреЛ рдмреИрд╢ рддрдХ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЦреНрд╡рд╛рд╣рд┐рд╢ рд░рдЦрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ 2017 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред
рдореИрдВ рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдмрд╛рд╢ рдХреЗ !(glob)
(рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ Bash-ism рд╣реИ, POSIX рдорд╛рдирдХ рднреА рдирд╣реАрдВ рд╣реИ) рдХреЗ рдмрд░рд╛рдмрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред
рдореЛрдЪрд╛ рдХреЗ рдЧреНрд▓реЛрдмрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рдмреИрд╢ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЧреНрд▓реЛрдм рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред (рдиреЛрдЯ: рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╢реЗрд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧреНрд▓рдмреНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдореЛрдЪрд╛ рджрд┐рдпрд╛ рдЬрд╛рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд▓реЛрдмрд╕реНрдЯрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ **
рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдпрд╣ рд╣реИ рдХрд┐ рд╡рд╣ рд╡рд┐рд╢реЗрд╖ рдмрдирд╛рддрд╛ рд╣реИред)
@ScottFreeCode рдХреНрдпрд╛ рдЖрдк рдЧреНрд▓реЛрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп extglob: true
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд▓реЛрдм / рдорд┐рдирд┐рдореИрдЪ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред
рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рд┐рд░реНрдл рдЧреНрд▓реЛрдм рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ рдкрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрд┐рд╕реА рд╕рдордп рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд░рд╣рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛрд╣рд░реЗ-рд╕реНрдЯрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рднреА рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреИрдЯрд░реНрди рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдЧреНрд▓реЛрдмрд┐рдВрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХреЛрдИ рдЦрд╛рдореА рдорд┐рд▓рддреА рд╣реИ), рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕реНрдкрд╖реНрдЯ ignore
/ exclude
рд╡рд┐рдХрд▓реНрдк рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рд╛рдн рд╣реИред рдХрдИ рдлрд╛рдпрджреЗ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ:
рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╢реЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред ; ^)
рдПрдХ рд╕рдореНрдорд┐рд▓рд┐рдд рд╕реВрдЪреА рд╢реВрдиреНрдп рд╕реЗ рдПрдХ рдмрд╣рд┐рд╖реНрдХреГрдд рд╕реВрдЪреА рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд░рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕реВрдЪреА рдирдХрд╛рд░рд╛рддреНрдордХ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ
рд╕рдЪ рд╣реИ, рдФрд░ рдореИрдВ рдЙрд╕ almost рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рднреВрд▓ рдЧрдпрд╛ рдерд╛
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐:
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрдм рдЧреНрд▓рдмреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдкреАрдЖрд░ рднреЗрдЬреЗрдВред
рдХреНрдпрд╛ --exclude
рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдЗрд╕реЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
@ sepo-рдПрдХ рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PR рдЦреЛрд▓рд╛ред
рдЖрдк рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ mocha -h
ред
рд╣рд╛рдБ, рдореИрдВ рдореЛрдЪрд╛ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЙрдиреНрдирдд рдФрд░ --exclude
рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдбреЙрдХреНрд╕ рдХреЛ рд╡реИрд╕реЗ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рд╕рд╛рднрд╛рд░ @outsideris
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА