ReactãšJestãããããšãã ã³ã³ããæããã ãšã«ãããç§ã¯_livereload_ã¢ãŒãã§ãã¹ããå®è¡ããããšã«æ £ããŠããŸãã ãããã£ãŠããã¹ããã¡ã€ã«ãä¿åããããã³ã«ããã¹ããèªåçã«å®è¡ãããŸãã ããã¯æ£ããæ©èœããŸãããããã¹ãã®å®è¡ã«ã¯3ç§è¿ãããããŸãã ããã¯ã1ã€ã®ãã¹ããã¡ã€ã«ã ãã§ãã ç§ã¯ããªããã»ããµãä»ããŠãã¡ã€ã«ãå®è¡ããŠããã®ã§ãããã«åé¡ãããã®ã§ã¯ãªãããšæããŸãã ãã¹ããè¿ éã«å®è¡ããæ¹æ³ã«ã€ããŠã®ææ¡ããTDD / BDDã¯ãŒã¯ãããŒãé«éåããæ¹æ³ã«ã€ããŠã®ã¢ããã€ã¹ã¯ãããŸããïŒ
ããã«ã¡ã¯ã¿ã€ãã³ã 1ã€ã®ãã¡ã€ã«ã«å¯ŸããŠ20ç§ä»¥äžã§ãã®åé¡ãçºçããŸãã:)
åé¡ã¯ãã«ãŒããã£ã¬ã¯ããªã§ãjestããå®è¡ããããã«æ§æããããšã§ãã ãããŠãJestããã¹ãã®ããã«ãã§ãã¯ããŠãããµããã£ã¬ã¯ããªããããããããŸãã ãã¹ãã®ãã¹ãæå®ãããšãä»åã¯10å以äžççž®ãããŸããã ãããŠãç§ãã³ãŒããŒããªããã»ããµãæã£ãŠããŸãã package.jsonå
ãã¹ã¯ãªãããïŒ{
...ã
"ãã¹ã"ïŒ "ãžã§ã¹ããã¹/ to / modules / to / test"
}
ãšããã§ãããªãã¯ã³ãŒããŒãååŠçããŠããŸããããããšãäœã§ããïŒ :)
@gothyã«æ»ã£ãŠããŠãããŠããããšãã ç§ã¯JSXã§éåžžã®JSã䜿çšããŠããŸãã äŸïŒhttps://github.com/facebook/jest/tree/master/examples/reactïŒã®ããã«JSXããªããã»ããµãä»ããŠãã¹ããå®è¡ããŠããŸãã ãã®äŸã§ããå®è¡ã«çŽ2.5ã3ç§ããããŸãã jQueryã®äŸã¯1ç§ãããããŸããã JSXããªããã»ããµã¯ãJSXãã¡ã€ã«ã®åŠçã«éåžžã«æéããããããšãæå³ããŠããŸããïŒ
åå¿ãã¹ã
jQueryãã¹ã
ãããJSXã«ã¯äœ¿çšããŸããã§ããã ãã®ããã»ããµã§ã¯äœãèšããŸããã å€åããã¯å®éã«ã¯é ãã§ãã å€ããã®ãããããããå®éã®ãããžã§ã¯ãã®ãã£ã¬ã¯ããªã«åé¡ãããããšãããããŸãã:)
Coffeescriptããªããã»ããµã§ãåæ§ã®åé¡ãçºçããŸããã ããã§ã®åé¡ã¯ãããªããã»ããµãäŸåé¢ä¿ãåŠçããããšããããšã ãšæããŸãã ããªããããŸããŸããããã®ãã®ãå¿ èŠãšãããªãã°ãããã¯é ããªããŸãã
ç§ã¯ééããªãåè«ã§é ããã¹ããçµéšããŸã:(
ç§ãåãããšãçµéšããŠããŸãã ååŠçãšã¯é¢ä¿ãªããšæããŸãïŒãã®å°ããªãã¡ã€ã«ã§ã®JSXåŠçã¯é«éã§ãïŒã 次ã®requireã¹ããŒãã¡ã³ãã®1ã€ãé€ããŠããµã³ãã«ãã¹ãã®ãã¹ãŠã®ã³ãŒããã³ã¡ã³ãã¢ãŠãããŸãããããã¹ãã«ã¯4ç§ããããŸãã ã³ã¡ã³ãã¢ãŠããããšããã«ããã¹ãã«ã¯0.1ç§ããããŸãã å°ãæãäžããŸããããHasteModuleLoaderã¯490åã®å¿ èŠãªããã±ãŒãžïŒ_shouldMockïŒïŒïŒãåŠçããå¿ èŠããããreact / addonsãå¿ èŠãªãšãã«ããããã¢ãã¯ããªãããã§ãã
var React = require('react/addons');
ãŸã
var CheckboxWithLabel = require('../CheckboxWithLabel.js');
次ã®var React = require('react/addons');
ãåé€ããŠããããªããã»ããµãä»ããŠãã¡ã€ã«ãå®è¡ããŸããã ãã¶ã0.2ç§ã®æ¹åããããŸããã ããªããã»ããµãåé€ãããšã次ã®çµæãåŸãããŸãã
JSXããªããã»ããµã䜿çš
JSXããªããã»ããµãªã
ç§ã¯JasmineãããMochaã®æ¹ã奜ãã§ãreactã³ã³ããŒãã³ãããã«ãããgulpfileãã»ããã¢ãããããããmochaãã¹ãã¹ã€ãŒãã§å®è¡ããããšã«ããŸããïŒä»¥äžã®ã¹ããããïŒã
function buildScript(file, watch) {
var bundler = browserify(file);
var stream;
bundler.transform(reactify);
stream = bundler.bundle();
return stream.on('error', handleErrors)
.pipe(source(file))
.pipe(gulp.dest(buildDir + '/'))
.pipe(mocha({ reporter: 'list' }));
}
ããã§ãreactifyã䜿çšããŠJSXãã¡ã€ã«ãååŠçããå¿ èŠããããŸããããã¹ããé ãå Žåã¯èŠåã¡ãã»ãŒãžãåãé€ããŸãã ãããã£ãŠãå®è¡æéã¯2ç§åŒ±ããããŸãããå®éã®ãã¹ãã¯çŽ32ããªç§ã§ãã JSXã䜿çšãã䟡å€ããããã©ããããŸã 決å®ããŠããŸãã
ããã§ãã JSXã䜿çšããªãjestreactã®äŸããã¹ããããšããã4ç§è¿ããã0.75ç§ã«ãªããŸããã JSXã䜿ã䟡å€ããããã©ããæ¬åœã«èããããããŸãã 倧èŠæš¡ãªãããžã§ã¯ãã§ã¯ãããŸããŸãªããã±ãŒãžããããããªãéããããã«é ããªããŸãã ããªããã»ããµã¯ããã®åäžã®ãã¡ã€ã«ã ãã§ãªãããã¹ãŠã®490ã®èŠä»¶ã§å®è¡ãããã®ã ãããã ãã®åçŽãªã³ã³ããŒãã³ãã«3ç§ãããã¯ãã¯ãããŸããã
ãããã«ãããã¯ãŒã¯ãããŒãé«éåããããã«ãã¹ããæ¬åœã«å¿ èŠã§ãã å°ãªããšãåäžã®ã¹ã€ãŒããå®è¡ããæ¹æ³ãç解ããå¿ èŠããããŸãã ãžã£ã¹ãã³ã§ã¯ããdescribeããšãitãã®ä»£ããã«ãddescribeããŸãã¯ãiitãã䜿çšããŠãåäžã®ãã¹ããŸãã¯ã¹ã€ãŒããå®è¡ã§ããŸããã ãžã§ã¹ãã¯ãšãŠãããã§ããç§ã¯ä»ãã éãã¯ãŒã¯ãããŒãå¿ èŠã§ãã
var React = require('react');
var CheckboxWithLabel = React.createClass({displayName: 'CheckboxWithLabel',
getInitialState: function() {
return { isChecked: false };
},
onChange: function() {
this.setState({isChecked: !this.state.isChecked});
},
render: function() {
return (
React.DOM.label(null,
React.DOM.input(
{type:"checkbox",
checked:this.state.isChecked,
onChange:this.onChange}
),
this.state.isChecked ? this.props.labelOn : this.props.labelOff
)
);
}
});
module.exports = CheckboxWithLabel;
@jeffchanã¯æ£ããã£ãã å¿ èŠãªã³ãŒãã¯ãã¹ãŠãJSXãã¡ã€ã«ã ãã§ãªããããªããã»ããµãä»ããŠå®è¡ãããŸãã
æéã®è§£æ±ºçã¯ãäœæ¥äžã«å€æŽãããJSXãã¡ã€ã«ã®ã¿ãåŠçããããã«gulpãwatchifyãããã³reactã䜿çšããããšã§ããããã«èŠããŸãã ããããã°ãå®è¡ããããã¹ãã®ã¿ãæå®ã§ããããã«ãªããŸãã ãã®ããã«ããŠãJSXãã¡ã€ã«ã¯1åã ãåŠçãããå®è¡ãããã¹ããå¶åŸ¡ã§ããŸãã ãã®ãããªãã®ã¯ããã¹ãã¯ãŒã¯ãããŒã«ãšã£ãŠæ¬åœã«çŽ æŽãããã§ãããã
gulp jest --tests "Checkbox*,*Form*"
次ã«ãWatchifyã¯ããããã®ãã¹ããäŸåããå€æŽãç£èŠããå€æŽã®ã¿ãåŠçããŠãããäœæ¥äžã®ãã¹ãã®ã¿ãå®è¡ããŸãã
@iamrandysç§ã¯ããªãã«100ïŒ åæããŸãã JestãšReactã¯çŽ æŽãããã§ãããJSXãJSã«ã³ã³ãã€ã«ããããšã¯å€§ããªé害ã§ãã å¿ èŠãªãã¡ã€ã«ïŒJSX以å€ïŒãJSXããªããã»ããµãä»ããŠå®è¡ããããšããåé¡ãGulpãã©ã®ããã«è§£æ±ºããã®ãèå³ããããŸããïŒ æ¬¡ã®ãããªææ¡ãããŠããŸããïŒ httpïŒ//blog.avisi.nl/2014/04/25/how-to-keep-a-fast-build-with-browserify-and-reactjs/ ïŒ
ãããç§ã¯gulpãã©ã°ã€ã³ãåããããçš®ã®ãã£ãã·ã³ã°ã¬ã€ã€ãŒã«ã€ããŠèããŠããŸã
åãããã£ãŠãã
2014幎8æ11æ¥8æ35åã§ãã¿ã€ãã³Avnitã®[email protected]ã¯æžããŸããïŒ
@iamrandys https://github.com/iamrandysç§ã¯100ïŒ ããªãã«åæããŸãã ãžã§ã¹ããš
Reactã¯çŽ æŽãããã§ãããJSXãJSã«ã³ã³ãã€ã«ããããšã¯å€§ããªé害ã§ãã ãã
Gulpãå¿ èŠãªãã¡ã€ã«ãæã£ãŠãããšããåé¡ãã©ã®ããã«è§£æ±ºããã®ãèå³ããããŸãïŒé
JSXïŒJSXããªããã»ããµãä»ããŠå®è¡ãããŠããŸããïŒ ããªãã¯äœããææ¡ããŠããŸãã
次ã®ããã«ïŒ -
http://blog.avisi.nl/2014/04/25/how-to-keep-a-fast-build-with-browserify-and-reactjs/
ïŒâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/facebook/jest/issues/116#issuecomment-51749798 ã
æ£ç¢ºã«èšãã°ãgulpãšwatchifyã®äœ¿çšã¯ãreactã§é©ãã»ã©é«éã§ãã æãå
¥ãã
gulp-livereloadã䜿çšããŠãå€æŽã®ãã³ã«ãã©ãŠã¶ãæŽæ°ãããšã
çŽ æŽãããéçºç°å¢ã å€æŽãå ããŠä¿åãããšãã»ãšãã©
éããŠãããã¹ãŠã®ãã©ãŠã¶ãšãã¹ãŠã®ããã€ã¹ã®å€æŽãå³åº§ã«ç¢ºèªã§ããŸãã ä»ç§ã¯
ç§ã®TDDã«ãåãããšãå¿
èŠã§ãã
ããã¯ã»ãŒãã®ãããªãã®ã§ãããhbsfyã®ä»£ããã«reactifyã䜿çšããŠãã ããã
https://gist.github.com/benhowdle89/9533185
2:35ã§æã2014幎8æ11æ¥ã«ã¯ãã¿ã€ãã³Avnit [email protected]
æžããŸããïŒ
@iamrandys https://github.com/iamrandysç§ã¯100ïŒ ããªãã«åæããŸãã ãžã§ã¹ããš
Reactã¯çŽ æŽãããã§ãããJSXãJSã«ã³ã³ãã€ã«ããããšã¯å€§ããªé害ã§ãã ãã
Gulpãå¿ èŠãªãã¡ã€ã«ãæã£ãŠãããšããåé¡ãã©ã®ããã«è§£æ±ºããã®ãèå³ããããŸãïŒé
JSXïŒJSXããªããã»ããµãä»ããŠå®è¡ãããŠããŸããïŒ ããªãã¯äœããææ¡ããŠããŸãã
次ã®ããã«ïŒ -
http://blog.avisi.nl/2014/04/25/how-to-keep-a-fast-build-with-browserify-and-reactjs/
ïŒâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/facebook/jest/issues/116#issuecomment-51749798 ã
@iamrandysã«æè¬ããŸãã ã¢ã«ãšãã£ã€ïŒãžã£ã¹ãã³ã¯ç°¡åã«ä»£çšå¯èœïŒã䜿çšããã¯ã€ãã¯ãªã¢ã¯ã·ã§ã³ã³ã³ããŒãã³ããã€ã©ãŒãã¬ãŒããéçºã ãã¹ãã¯éåžžã«è¿ éã§ãããLivereloadã®è¿œå ã®å©ç¹ãåŸãããŸãã å¿ èŠã«å¿ããŠäœ¿çšããŠãã ããã
ãããã«ãããã¯ãŒã¯ãããŒãé«éåããããã«ãã¹ããæ¬åœã«å¿ èŠã§ãã å°ãªããšãåäžã®ã¹ã€ãŒããå®è¡ããæ¹æ³ãç解ããå¿ èŠããããŸãã ãžã£ã¹ãã³ã§ã¯ããdescribeããšãitãã®ä»£ããã«ãddescribeããŸãã¯ãiitãã䜿çšããŠãåäžã®ãã¹ããŸãã¯ã¹ã€ãŒããå®è¡ã§ããŸããã ãžã§ã¹ãã¯ãšãŠãããã§ããç§ã¯ä»ãã éãã¯ãŒã¯ãããŒãå¿ èŠã§ãã
ããªãã¯ééããªãit.only
ãæžãããšãã§ããŸãããããŠç§ã¯ããªããdescribe.only
ãã§ãããšä¿¡ããŠããŸãã
ã«ã«ãã¯ããªããæãã§ããããšãæ£ç¢ºã«è¡ããããªããããªããã°ãªããªãã®ã¯è¿œå ããããšã ãã§ã
ãããžã§ã¯ããžã®karma.confãã¡ã€ã«ã ç§ã¯ã«ã«ããreactifyããµããŒãããŠããããšã«æ°ã¥ããŠããŸããã§ãã
ãšbrowserifyã ããã§ããã¹ãŠã®ãã©ãŠã¶ã§åæã«ãã¹ãã§ããŸãã
ãã€ã©ãŒãã¬ãŒããããžã§ã¯ãã®PRãäœæããŸããã
https://github.com/iamrandys/react-component-boilerplate/tree/karma
'npm test'ãå®è¡ããã ãã§ãkarmaããã©ãŠã¶ãèµ·åãã
å€åããŸãã
10:35ã§ç«ã2014幎8æ12æ¥ã«ã¯ãã¿ã€ãã³Avnit [email protected]
æžããŸããïŒ
@iamrandyshttps ïŒ//github.com/iamrandysã«æè¬ã
åå¿æåãã€ã©ãŒãã¬ãŒã
https://github.com/TYRONEMICHAEL/react-component-boilerplateã䜿çšããŸã
ã¢ã«ãšãã£ã€ïŒãžã£ã¹ãã³ã¯ç°¡åã«çœ®ãæããããšãã§ããŸãïŒã ãã¹ãã¯éåžžã«
ãã°ãããLivereloadã®è¿œå ã®ã¡ãªããã享åã§ããŸãã å¿ èŠã«å¿ããŠäœ¿çšããŠãã ãããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/facebook/jest/issues/116#issuecomment-51931532 ã
次ã®preprocessor.jsã䜿çšããŠãJSX以å€ã®ãã¡ã€ã«ãJSXå€æããªãããã«ããŸãã çŸç¶ã§ã¯ã /** @jsx
ãã¬ãã£ãã¯ã¹ãå«ã.jsx
ãã¡ã€ã«ã®ã¿ãåŠçããŸãã .js
ãã¡ã€ã«ãJSXå€æããå Žåã¯ã ||
åã®ifæ¡ä»¶ã®æåã®éšåãåé€ããã ãã§ãïŒ src.slice ...
æ¡ä»¶ã®ã¿ãæ®ãããã«ããŸãïŒã
// from http://facebook.github.io/jest/docs/tutorial-react.html
var ReactTools = require('react-tools');
var MAGIC = "/** @jsx";
module.exports = {
process: function(src, file) {
if (!/\.jsx$/.test(file) || src.slice(0, MAGIC.length) != MAGIC) return src;
return ReactTools.transform(src);
}
};
ããã§ãã¡ãã£ãšé ãã§ãã
èå³æ·±ãã¹ãããã@sqsã ç§ãééã£ãŠããå Žåã§ããåãã¡ã€ã«ã調ã¹ãŠå€æããå¿ èŠããããã©ããã確èªããå¿ èŠã¯ãããŸãããïŒ ç§ã¯æ¬¡ã®ããšã§å€ãã®æåãåããŸãã-react-component-boilerplate ã ãã¹ãã¯å®éã«ã¯ããªãè¿ éã«å®è¡ãããŸãã
éåžžã«çŽ æŽãããã ããã«ãããæéã9.3ç§ãã4.7ç§ã«ççž®ãããŸããã ããã¯åäžã®ãã¹ãçšã§ãã ããã§ãã¯ããã«é«éãªKarmaã«ãšã©ãŸãå¿ èŠããããŸãïŒ100åã®ãã¹ãã«1ç§ãããããŸããïŒã ããã«ãKarmaã¯äœæ¥äžã«å€æŽãç£èŠããè€æ°ã®ãã©ãŠã¶ãŒã§ã³ãŒãããã¹ãããŸãããJestã®èªåã¢ãã¯ã倧奜ãã§ãã rewireifyã䜿çšããŠæåã§ã¹ãã€ãäœæããã®ã¯äœåãªäœæ¥ã§ãããå®å šã«å¶åŸ¡ã§ããŸãã
ãããç§ã¯ããªãã誀解ããŠãããããããŸããããjsxãå«ã.jsãã¡ã€ã«ãããããã©ã°ãããããŒã«åºã¥ããŠæ€åºãããå Žåã¯ã.jsxã®ãã§ãã¯ãåé€ããããšãæå³ããŸããã
ç§ã®iPhoneããéä¿¡ããã
2014幎8æ28æ¥ã«ã¯ãåå23æ45ã§ãã¿ã€ãã³Avnit [email protected]æžããŸããïŒ
èå³æ·±ãã¹ãããã@sqsã ç§ãééã£ãŠããå Žåã§ããåãã¡ã€ã«ã調ã¹ãŠå€æããå¿ èŠããããã©ããã確èªããå¿ èŠã¯ãããŸãããïŒ ç§ã¯æ¬¡ã®ããšã§å€ãã®æåãåããŸãã-react-component-boilerplateã ãã¹ãã¯å®éã«ã¯ããªãè¿ éã«å®è¡ãããŸãã
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
ããïŒ ç§ã¯åè«ã®ããã«--watch
ã«åãçµãã§ãããäžè¬çã«ãããããéãããããšããŠããŸãã ããã«å ±åããŸãã
ç§ã®æåã®å®è¡ã«ã¯çŽ5ç§ããããŸãïŒãã¹ãã¯1ã€ã ãã§ãå§ããã°ããã§ãïŒã ãã®åŸãè¿œå ã®å®è¡ããšã«çŽ1.2ã1.5ç§ããããŸãã
ãã®æéã®ããªãã®éãæ¥ãã§ãã£ãã·ã¥ãããŒãããã®ã«è²»ããããŠããããã§ãïŒç§ã®ãããžã§ã¯ãã§ã¯ãã§ã«4ã¡ã¬ã®ãã¡ã€ã«ã§ãã
--watch
äœæ¥ã楜ãã¿ã«ããŠããŸããããã¹ããå®è¡ããã®ã«1.2ç§ã®ããŒãæéãå¿
èŠãªããšãäœãèµ·ãã£ãŠããã®ãçåã«æã£ãŠããŸããïŒ éæ»ãäœãããŠããã®ãããªãåè«ãããã䜿ã£ãŠããã®ãã«ã€ããŠã¯äœãç¥ããªãã®ã§ãç§ã¯ããªãç¡ç¥ã§ãã
Hasteã¯ãã¢ãžã¥ãŒã«åãçžå¯Ÿçã§ã¯ãªããããã¬ãã«ã§ããCommonJSã¢ãžã¥ãŒã«åœ¢åŒã®ãã¬ãŒããŒããµããŒãããŸãã ã€ãŸããããã°ã©ã ãå®è¡ããåã«ã¢ãžã¥ãŒã«ïŒããã³äŸåé¢ä¿ïŒãäºåã«ç¥ãå¿
èŠããããŸããããããªããšããã¡ã€ã«ã·ã¹ãã ããã©ããŒã¹ããŠårequire
ã¢ãžã¥ãŒã«ãæ¢ãã®ãéåžžã«éå¹çã«ãªããŸãã ãã ããã»ãšãã©ã®äººãçžå¯Ÿã¢ãžã¥ãŒã«åœ¢åŒïŒla node.jsïŒã䜿çšããŠããããšãèªèããŠãããïŒãªãã·ã§ã³ãæäŸãããŠããªãéãïŒHasteãžã®æé»ã®äŸåé¢ä¿ãåé€ãããã®ã§ãããã«ããé«éã«ãªããŸãã
@amasadããã¯çŽ æŽãããã§ã
beforeEach
ãŸãã¯it
ã³ãŒã«ããã¯ã§ç¹°ãè¿ãã§ã¯ãªããdescribeã³ãŒã«ããã¯ã®äžã§äžåºŠãã¡ã€ã«ïŒç¹ã« 'react / addons'ãšãã¹ãäžã®ã¢ãžã¥ãŒã«ïŒãèŠæ±ããããšã倧ããªéããçãããšãããããŸããã
æããã«ãç§ã¯jsxã§ã¯ãªãcoffee-scriptã䜿çšããŠããŸãããããã«ãããããªããã»ããµã®äœæ¥ãšã require
åŒã³åºããèªåã¢ãã¯ããããã®jestã®äœæ¥ã®äž¡æ¹ãç¯çŽãããŸãã
__tests__/login_fields.coffee (3.013s)
ïŒçãïŒïŒ
describe 'Login Fields', ->
beforeEach ->
{TestUtils} = require('react/addons').addons
LoginFields = require '../login_fields'
...
it 'should have left animation states defined', ->
{TestUtils} = require('react/addons').addons
...
it 'should have a translateX value equal to enterStateStart.left', ->
{TestUtils} = require('react/addons').addons
...
it 'should call handleLogin on button click or enter press with the entered username and password', ->
{TestUtils} = require('react/addons').addons
...
it 'should call updateFields on all change events', ->
{TestUtils} = require('react/addons').addons
...
ããããããã¯ã¯ããã«éããªããŸã...
__tests__/login_fields.coffee (0.604s)
ïŒæªããªãïŒ
describe 'Login Fields', ->
{TestUtils} = require('react/addons').addons
LoginFields = require '../login_fields'
# require other repeatedly needed modules here as well
beforeEach ->
# now you can use TestUtils to renderIntoDocument LoginFields here
it 'should have left animation states defined', ->
# and use TestUtils here
...
ãããŸã§ã«æšå¥šããããã¹ãŠã®æé©åã䜿çšããåŸã§ããç§ã®ãã¹ãã®é·ãã¯14ç§ã§ãã 16GBã®RAMãšSSDã§ãã Jestã¯ãçŸåšã®ç¶æ ã§ã¯å®å šã«äœ¿çšã§ããŸããã ç³ãèš³ãããŸããããã«ã«ãã«åãæ¿ããŸãã
ç§ã¯ã«ã«ããã¢ã«ããã£ã€ãã·ãã³ãåé ç·ããšã€ãªã¢ã¹åã§å€§ããªæåãåããŸããã 300ãè¶ ãããã¹ãã1/2ç§ã§å®è¡ãããŸãã äœãããReactã¯çŽ æŽãããã§ã!!!!! ããŒã ã¯ãããæããããã䜿ã£ãŠããã€ãã®æ¬åœã«è¯ããã®ãéçºããŠããŸããã ããã¯ãšãŠããããã§ã¡ã³ããã³ã¹å¯èœã§ãã ç§ãã¡ãä»ãŸã§äœ¿ã£ããã®ãšã¯å€§ããç°ãªããŸãã
èªåã§ããã«ééããã ãã§ãã ãã¹ãã®å®è¡é床ã¯_æ¬åœã«_é ããªããŸãã é ããã¹ãã®åé¡ã¯ãéçºè ãããããç¡å¹ã«ããããäžéšã®æéããå®è¡ããªãããšã§ãã äœããããåŒãèµ·ãããŠããã®ãèããŠããŸããïŒ æäŒããŸããããïŒ
ç§ã¯ãã®æ£ç¢ºãªåé¡ãæ±ããŠããŸãã-ãã¹ãã¯æåã«å®è¡ããã®ã«çŽ17ç§ãããã次ã«ãã£ãã·ã¥ããŠãã4ç§ããããŸããã ãã«ããã£ã¬ã¯ããªãšå€éšã¢ãžã¥ãŒã«ãé©åã«é€å€ãããŠããªãããšãããããŸããã testPathDirsæ§æãªãã·ã§ã³ããœãŒã¹ãã£ã¬ã¯ããªãæãããã«èšå®ãããšãã©ã³ã¿ã€ã ã0.5ç§ã«ççž®ãããŸããã
ããã¯ãReact v0.12 +ã䜿çšããŠç§ã®ããã«æ©èœããŸããïŒ
var ReactTools = require('react-tools');
module.exports = {
process: function(src, file) {
if(!file.match(/\.react\.js$/)) return src;
return ReactTools.transform(src);
}
};
Jestã䜿ãå§ããã°ããã§ã-éåžžã®JavaScriptã¢ãžã¥ãŒã«ïŒJSX / ReactãªãïŒããã¹ãããã ãã§ãJestã¯ã²ã©ãé ãã§ãã ã€ã³ã©ã€ã³ãã¹ããšçµã¿èŸŒã¿ã®ã¢ãã¯ã®ã¢ã€ãã¢ã¯æ°ã«å ¥ã£ãŠããŸãããéåžžã«é ããããã¢ã«ãæãããªããŸãã åå ãäœã§ãããããããŸãã...é床ã®äœäžã®åå ãšãªã£ãŠãããã£ã¬ã¯ããªããªãŒãæ€çŽ¢ããŠããŸããã ãã¡ã€ã«ãçŽæ¥æå®ãããšãããã§ãéåžžã«é ãã§ãã
å°ãªããšãé ãã®åå ã«ã€ããŠäœãèãã¯ãããŸããïŒ ïŒJSX / CoffeeScriptã䜿çšããŠããŸãããèªåã¢ãã¯ã¯ãªãã«ãªã£ãŠããŸãïŒ
æåã®åŒæ°ã¯åžžã«trueãè¿ãããããå ã®äŸã¯ç§ã«ã¯ããŸããããŸããã§ããã
var ReactTools = require('react-tools');
var MAGIC = "/** <strong i="6">@jsx</strong> ";
module.exports = {
process: function(src, file) {
if (src.slice(0, MAGIC.length) != MAGIC) return src;
return ReactTools.transform(src);
}
};
@culshaw @haihappençŽ æŽãããåé¿çãããããšãã10ç§ä»¥äžã®ãã¹ãã2+ã«ççž®ããŸãã ãã®åé¿çã«ãããreactãã¡ã€ã«ã«ã¯æ¡åŒµå_.jsx/_ãreact.jsã䜿çšããå¿ èŠããããšæããŸãããreactifyã䜿çšããå Žåã«ã圹ç«ã€ãšæããŸãã
æ£çŽã«èšããšãGruntãééãããšããŸã +20ç§ã®æéãåŸãããŠããŸããã
ã«ã«ããšåå¿ããåèšæéã¯çŽ+4/5ç§ã§ãã
ãã ãããã¹ãŠVMå ã«ãããŸã
ããã«ã€ããŠå ±åããã ãã§ãã Karma / Mochaãšã®åå¿ããã¹ãããŠããã700è¿ãã®ãã¹ããããããã¹ãŠã®ãã¹ããå®è¡ããã®ã«çŽ4ç§ããããŸãã ã¢ãã¯ã管çããå¿ èŠããããŸãããããã ãã®äŸ¡å€ã¯ãããŸãã Reactã¯é©ãã¹ããã®ã§ããã å®ç§ã§ããããã«å®å®ããŠããŸãã ã²ãŒã ãã§ã³ãžã£ãŒïŒ ç§ãã¡ã®ããŒã ã¯ãä»ã®ãã®ã䜿çšããŠã€ã¡ãŒãžã³ã°ããããšãã§ããŸããã§ããã
ç§ã¯ãžã§ã¹ããéãããããšã¯ãããŸããã§ããã ã¢ã«ã䜿ã£ãŠããŸãã ãžã§ã¹ããéãã£ãããç§ã¯
代ããã«ããã䜿çšããã§ãããã
12:17ã®æšã2015幎2æ5æ¥ã«ã¯ãã®ã«ã»ããŒãã³[email protected]
æžããŸããïŒ
@iamrandyshttps ïŒ//github.com/iamrandysã§èª¬æããŠ
ã©ã®ããã«ããŠåè«ããããªã«éãããããšãã§ããã®ãããã£ãšè©³ããæããŠãã ãããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/facebook/jest/issues/116#issuecomment-73097182 ã
ããããšã@iamrandys ãã©ããã£ãŠåè«ãéãããã®ïŒããåé€ããŸããã ç§ãããªãã®æçš¿ãèªã¿ééããããšã«æ°ä»ããåŸã®è³ªåïŒãããããªãã¯åæã«çããŸããïŒ...ãšã«ãããããã¯æ®å¿µã§ããç§ã¯åè«ã¯ãŸã çç£äœ¿çšã®æºåãã§ããŠããªããšèããããã¹ãã ãšæããŸãã
@haihappenãš@darcyadamsã«ããåé¿ç/å€æŽã«ããã1åã®ãã¹ãã§ãã¹ãæéã3.5ç§ããçŽ1ç§ã«ççž®ã§ããŸããã ããã¯ãèŠããã®èµ·åæéãèæ ®ããŠããŸããããããçŽ1ç§ã®ããã§ãã ããã¯é ãããŠæ¥åžžã®äœæ¥ã§ã¯å¹ççã§ã¯ãªãããã«æãããã®ã§ãã¢ã«/ã«ã«ãã®ã³ã³ããèŠãŠã¿ãããšæããŸãã ããã©ã«ãã§ãã¹ãŠãã¢ãã¯ãããšããJestã®å²åŠã¯å¥œãã§ãããã¡ãªããã¯ãããŸããã
åãåé¡ããããŸããå°ããªãããžã§ã¯ãã§3ã€ã®ãã¹ããååŸããã ãã§ã3ç§ããããŸãã
ãããžã§ã¯ãããŒããããã®è¿ãã§ããã©ãŒãã³ã¹ãæ¹åããŠããŸããïŒ
ãšããã§ïŒå€æŽããããã¡ã€ã«ã«å¯ŸããŠã®ã¿åäœãã¹ããåå®è¡ããïŒããªãããã¯ãªïŒæ¹æ³ãèŠã€ããŸããã éåžžãå®è¡ãããã¹ãã¯1ã€ãããªããããããã«ãããåã³ããªãé«éã«ãªããŸãã ç§ã¯ãããããã«çœ®ããŸããïŒ https ïŒ
Strange Jestã¯ãReact.js 2015confã§èšåãããŠããŸããã
testPathDirsãåå ã®ããã§ãã package.jsonã§æ¬¡ã®ããã«æå®ããŸãã
"jest": {
"unmockedModulePathPatterns": [
"./node_modules"
],
"scriptPreprocessor": "./preprocessor.js",
"testDirectoryName": "tests",
"testPathDirs": ["tests"]
}
èªåã¢ãã¯ã䜿çšããŠããå Žåã¯ã @ adjavaherianã«æ³šæããŠãã ããïŒ //github.com/facebook/jest/issues/176
å®éãtestPathDirsãäŸåé¢ä¿ãã«ããŒããŠããªãå Žåãèªåã¢ããã³ã°ã埮åŠã§ã€ã©ã€ã©ããæ¹æ³ã§æ©èœããããšãæåŸ ããŠãã ããã
ãããã®æžå¿µããããã¹ãã®ã»ããã¢ããã§äœãåé¡ãçºçããŠããå¯èœæ§ããããšæããŸãã ç§ã¯ããã§ééã£ãŠãããããããŸããããç§ãç¥ãéãã beforeEachãã¹ãå
ã§ä»ã®å¿
èŠãªã¢ãžã¥ãŒã«ãšäžç·ã«var component = React.createFactory(require("component/path"))
ãããªãã®ã䜿çšããŠããŸãã 確ãã«ãããã¯ãã¹ãŠã®ãã¹ãã«å¿
èŠãªããã§ã¯ãããŸããã ã€ãŸããå·¥å Žã¯æ¯åæ°é®®ãªéšåãçç£ããå¿
èŠããããŸãã requireãbeforeEachãããã¯ã®å€ã«ç§»åãããšããã¹ãé床ã10åã«ãªããŸãã æ®å¿µãªããããã®å Žåãããã€ãã®ãã¹ããå¥åŠã«å€±æãããã®çç±ãããããŸããã
ããã圹ç«ã€ãã©ããã¯ããããŸããã èãïŒ
å ±åããããã¹ãå®è¡æéããååŠçæéãé€å€ãããŠãããšäŸ¿å©ã§ãã ãã®äœæ¥ã®å€§éšåãå€æã¹ãããããã®ãã®ã§ããå Žåãèµ€ãèŠãã®ã¯äžçš®ã®äžå ¬å¹³ã§ãã
ããã«ã¡ã¯ãã¿ããªã
ç§ãåãåé¡ãæ±ããŠããŸãã å®è¡ã«çŽ1åããããã¹ãã±ãŒã¹ããããŸã:(
ããã©ãŒãã³ã¹ã®åé¡ã®ãããã¡ã€ãªã³ã°ãã©ãããå§ããã°ãããããããŸããããã³ãã¯ãããŸããïŒ
ç§ã¯èªåã®VMç°å¢ã§ã®ã¿çºçãããã®åé¡ãä¿®æ£ããŸããïŒcfïŒhttpïŒ//stackoverflow.com/a/13703132ïŒã ä»ã§ããã¹ãã¯ç§ãæåŸ ãããããé ãã§ããã浮浪è ã®ä¿®æ£åãããã¯ããã«éãã§ãïŒç§ã®ãã¹ãã¹ãŒãã§ã¯60ç§-> 6ç§ïŒ
ããã§ãé床ãåé¡ã«ãªãå Žåã¯ãã¢ã«ã«ç§»åããããšããå§ãããŸãã ãã®ãã©ãŒã¯ã§å€ãã®æåãåããŸãããããã¯ãåçŽãªReactå±éããè€éãªReactå±éã®ãã¹ããã»ããã¢ããããæ¹æ³ã説æããŠããŸãã https://github.com/adjavaherian/mocha-reactç§ãã¡ã¯å®æçã«çŽ3ç§ã§100以äžã®ãã¹ããå®è¡ããŠããŸãã
ç§ã¯ã¢ã«ãè¡ãæ¹æ³ã§ããããšã«åæããŸãã æ倧çŽ900åã®ãã¹ãã§ãçŽ4ç§ããããŸãã
2015幎4æ23æ¥ã«ã¯ã16:53ã§ãã¢ããŒã«Djavaherian [email protected]æžããŸããïŒ
ããã§ãé床ãåé¡ã«ãªãå Žåã¯ãã¢ã«ã«ç§»åããããšããå§ãããŸãã ãã®ãã©ãŒã¯ã§å€ãã®æåãåããŸãããããã¯ãåçŽãªReactå±éããè€éãªReactå±éã®ãã¹ããã»ããã¢ããããæ¹æ³ã説æããŠããŸãã https://github.com/adjavaherian/mocha-reactç§ãã¡ã¯å®æçã«çŽ3ç§ã§100以äžã®ãã¹ããå®è¡ããŠããŸãã
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
åãçµéšã§ãïŒJSXã䜿çšããŠïŒ1ã€ã®ãã¹ãã ãã§Jestãã»ããã¢ããããã ãã§ãçŽ3ç§ããããŸããããã¯å€§å€ãªããšã§ãã
@iamrandysã»ããã¢ããã®äŸã瀺ããŠãããããã§ããïŒ å®ç§ãªã³ã³ãã®ããã§ãã
@amasad Jestã«ã¯ãbabel-loaderãcacheDirectoryãªãã·ã§ã³ã§èš±å¯ãããã®ãšåæ§ã®ã³ã³ãã€ã«æžã¿ãã¡ã€ã«ã®ãã£ãã·ã¥ãæ§ç¯ãããªãã·ã§ã³ããããŸããïŒ -httpsïŒ//github.com/babel/babel-loader#options
ç§ã«ãšã£ãŠåè«ãé
ãããŠããã®ã¯ãã³ã³ãã€ã«ã§ã¯ãªããã¯ãŒã«ãŒããŒã«ããã»ã¹ã®èµ·åã§ãã çŽ4ç§ãããæåã®ãã¹ããé€ããŠããã¹ãŠã®ãã¹ãã¯0.05ç§æªæºã§åæ ŒããŸãã
https://github.com/jeffmo/node-worker-pool
https://github.com/facebook/jest/blob/master/src/TestRunner.js#L376
@songaweeãªãã·ã§ã³ãšããŠPRãéä¿¡ãããã§ããïŒ ãã£ãã·ã¥ããã€å£ããããããªãããšãããã®ã§ãããã©ã«ãã§ãªã³ã«ããã¹ãã§ã¯ãªããšæããŸãã ããšãã°ãã³ã³ãã€ã©ãªãã·ã§ã³ãå€æŽãããšããã£ãã·ã¥ããªã»ãããããŸãã å¥ã®ãªãã·ã§ã³ã¯ããã£ãã·ã¥ã«å ããŠãªã»ãããã£ãã·ã¥ãªãã·ã§ã³ãæã€ããšã§ãã
@doodzikã¯ãã¢ãžã¥ãŒã«ã®èšè¿°ãšèªã¿åãã§ããnode-haste
ã§ã¯ãªããã¯ãŒã«ãŒããŒã«ã§ãããšç¢ºä¿¡ããŠããŸããïŒ
@amasadç§ãããããšã¯ã jest
ãå®è¡ããåã¹ããããå®äºãããŸã§ã«ããã£ãæéã枬å®ããããšã§ããã
ãããŠã node-worker-pool
ã¯ããã¹ããé
ãæåŸã®ã€ã³ã¹ã¿ã³ã¹ã§ããã
ç§ã®çºèŠã¯åãªãçç¶ã§ãããåââé¡ã®æ ¹æ¬ã§ã¯ãªãå¯èœæ§ããããŸãã
ããããç§ã¯ããã«é©åãªåæãããæéããããŸããã§ããã
ç§ã®ãã¹ãã¯çŸåšæ¬¡ã®ããã«ãªã£ãŠããŸãã
ç§ã®åå¿ãã¹ãã¯é ãã§ãïŒexamplesãã©ã«ããŒã«ãããã®ïŒã ç§ã話ããŠããã®ã¯ãç¡åå¿ãã¹ãã§ãã
+1
ãã£ã¡ãäžç·ã ãã¹ãã¯éåžžã«é ãã§ãïŒãã£ããïŒ
åé¡ã«çŽé¢ããã®ã¯ç§ã ãã ãšæããŸããã Jestã䜿çšããã®ã¯åããŠã§ããã¹ãçµæãéããããŸããã FacebookãJestã䜿çšããŠã©ã®ããã«ãã¹ããè¡ãã®ãçåã«æã£ãŠããŸããïŒ
React Europeã«ã³ãã¡ã¬ã³ã¹ã®QïŒAã»ãã·ã§ã³ã§ã®Reactã®ã¿ããªãžã®Jestã®æ¹åã«ã€ããŠã®ç§ã®è³ªå-httpsïŒ//youtu.be/CRJZBZ_-6hQïŒt = 363
Mocha + Sinonã«åãæ¿ããŸããã 決ããŠå¹žãã§ã¯ãããŸããã§ããã
2015幎8æ31æ¥17ïŒ45ãAlanRubinnotifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
React Europeã«ã³ãã¡ã¬ã³ã¹QïŒAã§ã®Jest to theReactã®äººãã¡ã«ã€ããŠã®ç§ã®è³ªå
ã»ãã·ã§ã³-httpsïŒ//youtu.be/CRJZBZ_-6hQïŒt =â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/facebook/jest/issues/116#issuecomment-136394910 ã
ç§ã¯åãåé¡ãæ±ããŠããŸãã Jestãã¹ãã«ã¯æéããããã ãã§ãå®è¡æéã¯å®éã«ã¯ç°ãªããŸãã ãããã䞊è¡ããŠå®è¡ãããã1ã€ã®ããã»ã¹ïŒ--runInBandïŒã§å®è¡ãããã¯éèŠã§ã¯ãããŸããã§ããã ã¯ãŒã«ãŒããã»ã¹éã®ãªãœãŒã¹ç«¶åã§ã¯ãªãããã§ãã
v8ãããã¡ã€ã©ãŒïŒhttps://github.com/node-inspector/v8-profilerïŒã䜿çšããŠããã€ãã®CPUãã³ããäœæããŸããããã»ãšãã©ã®æéãã¢ãžã¥ãŒã«ã®ã¢ãã¯ã«è²»ããããŠããããã§ãã ã€ãŸãããŠããããã¹ãã®å®è¡æéã®25ïŒ ãjest-cli / src / lib / utils.jsïŒrunContentWithLocalBindingsã«è²»ããããŠããŸãã
ããã©ãŒãã³ã¹ã®æŽæ°ã¯ãããŸããïŒ es6ãšbabel-jestã§jestãååŸããŸãããã10ç§ä»¥äžã§2ã€ã®ç°¡åãªãã¹ããå®è¡ããŠããŸã:-(
ã¹ããŒãã¢ããããããã«ãã®ã¹ã¬ããããå€ãã®ã¢ã€ãã¢ãè©ŠããŸããããäœãæ©èœããŸããã§ãã...
ããã«ããã«çŠç¹ãåãããŸãã ç§ãã¡ã¯ä»ãåè«ã®ä»äºã«å°ãå§åãããŠããŸãããããããã£ãšçŽ æŽããããã®ã«ããããšãçŽæããŸãã
ã³ãã¥ããã£ãæ¯æŽã§ããã¿ã¹ã¯ã¯ãããŸããïŒ
+1
çŸåšã®æ倧ã®å©ãã¯ãå®éã«ã¯ããã¥ã¡ã³ããWebãµã€ããæ¹åããåé¡ã解決ãããªãŒãã³ãœãŒã¹ã®äººã ãæ¯æŽããããšã§ãã
ãã«ããã€ãã©ã€ã³ã§JESTãã¹ããé«éåããããã«è¡ã£ãããšã®1ã€ã¯ãã·ã³ã°ã«ã³ã¢ãã·ã³ããã«ãã³ã¢ãã·ã³ã«çœ®ãæããããšã§ããã ããã©ã«ãã§ã¯ãjestã¯äœ¿çšå¯èœãªããŒããŠã§ã¢ã¹ã¬ãããšåãæ°ã®ã¯ãŒã«ãŒãçæããŸãã ãããå©çšã§ããªãå Žåã¯ãæåã§ã-wãïŒmaxWorkersïŒã䜿çšããŠéã¶ããšãã§ããŸãã ã·ã³ã°ã«ã³ã¢ã§ãã¹ããŒãã¢ãããåŸããããããããŸããã
æçµçã«ãã¢ãžã¥ãŒã«ã®ã¢ãã¯ã¯éåžžã«ã³ã¹ãããããïŒäžèšã®ç§ã®ã³ã¡ã³ããåç §ïŒãå®è¡æéã®å€§éšåãåŒãèµ·ããããšãããããŸããã
ç§ã«ãšã£ãŠes6ã®Jestã¯å®å šã«äœ¿çšã§ããŸããã èµ·åããã ãã§10ç§ä»¥äžããããçŸåšã®1ã€ã®ãã¹ããå®è¡ããã®ã«2ç§ããããŸãã ã«ã«ãã«æ»ã£ãŠããã£ãšå€ãã®ããšãæåŸ ããŠããŸãã:(
çŸåšãnode-hasteãæ°ããã¢ãžã¥ãŒã«ãªãŸã«ããŒã«çœ®ãæããäœæ¥ãè¡ã£ãŠããŸããããã«ããããã®åé¡ãä¿®æ£ãããã¯ãã§ãã
ããã«ã¡ã¯ãã¿ããªã ãã®åé¡ã«é¢ãããã¥ãŒã¹ã¯ãããŸããïŒ
ããã«ã¡ã¯ãJestã¯éReactãã¹ãã«é©ããŠããŸããïŒ ç§ãã¡ã®ããŒã ã§ã¯ãåå¿ã¢ããªãšéåå¿ã¢ããªã®äž¡æ¹ã«å ±éã®åºæºãèšå®ããããšèããŠããŸãã
Jestã¯æ®éçãªãã¹ãã©ã³ããŒã§ãããReactã䜿çšããå¿ èŠã¯ãããŸããã :)äŸã®1ã€ãèŠãŠãã ããïŒ
ã¿ãªãããããã«ã¡ã¯ãããã«ããã€ãã®æ¬åœã«èå³æ·±ãæ å ±ããããŸãã ãŸãããã¹ãã®å®è¡é床ãé ããšããåé¡ãçºçããŠããŸãã çŸåšãå®è¡ã«æ倧15ç§ããã13ã®ãã¹ãããããŸãã
packages.jsonãã¡ã€ã«ã«"testPathDirs": ["<rootDir>/path/to/tests/"]
ãè¿œå ãããšãèµ·åæéã倧å¹
ã«æ¹åãããããšãããããŸããã
@cpojeræ°ããæ¹åãããã¢ãžã¥ãŒã«ãªãŸã«ããŒã«é¢ããææ°æ å ±ã¯ãããŸããïŒ ããããã¹ããããéãå®è¡ããããã®éµã«ãªãããšãæ¬åœã«æãã§ããŸã
ãã®äœæ¥ã¯ïŒ599ã§è¡ãããŠããŸãã
ããããšã@ cpojerð
å®æããHaste2ãèŠãã®ã楜ãã¿ã«ããŠããŸã
ã¢ã«ã䜿çšããåããã¹ãã¯ãç§ã«ãšã£ãŠ44msã§å®è¡ãããåè«ã¯6ç§ããããŸããã
jest
ã䜿çšããæåã®6ã€ã®ãã¹ããã¡ã€ã«ãMocha
ã jsdom
ãããã³sinon
ã䜿çšããããã«åãæ¿ããã®ã«çŽ15åããããŸããã
çãããæå ±ã§ããä»æ¥ã¯ïŒ599ãããŒãžããŸããã€ãã«ãèµ·åã®é ãããªããããšãã§ããŸãã
ããããŸãããããã¯æçµçã«Jest0.9ã§ä¿®æ£ãããã¯ãã§ãã ããã«æéãããã£ãŠç³ãèš³ãããŸããããJestã«ã¯ããã€ãã®äžåšçšãããããŸãã:)
Reactãã¹ãèªäœãã©ã®ããã«é«éåããããã«ã€ããŠã¯ã httpsïŒ//github.com/facebook/react/pull/6052ãåç
§ããŠjest-cli@next
ãšããŠã¿ã°ä»ããããŠããŸãã 解決ãããããã®åé¡ã解決ããŸãã
ãã®æ°ããããŒãžã§ã³ãå®è¡ããå Žåã¯npm install jest-cli@next
ïŒ jest@next
@cpojerã§ã¯ãªãïŒ
ãããããç§ã¯ãã€ããã®ééããç¯ããŸã:)ç§ã¯å ã®ã³ã¡ã³ããç·šéããŸããã
npm install jest-cli@next
ã䜿çšããŠã¢ããã°ã¬ãŒãããåŸã®@cpojer dontMock
æå®ã«åé¡ããããŸãã ã€ãŸããæŽæ°åïŒ[email protected]ã䜿çšïŒã¯ããã®è¡ã¯æ£ããæ©èœããŸãã
jest.dontMock('../../../../fixtures');
次ã«ã0.9.0ã«æŽæ°ããåŸãåãåŒã³åºãã§ã¢ãžã¥ãŒã«ãã¢ãã¯ãããŸã
@steinbachrã¯ãããããå¥ã®åé¡ã«å ¥ãã¯ãã§ãã ãã®åé¡ãFBã§çºçããã®ãèŠãããšããªãã®ã§ãåçŸãæäŸã§ããã°çŽ æŽããããšæããŸãã
ããããšã@cpojer ãããã§äœæãã
æãåèã«ãªãã³ã¡ã³ã
ãããŸã§ã«æšå¥šããããã¹ãŠã®æé©åã䜿çšããåŸã§ããç§ã®ãã¹ãã®é·ãã¯14ç§ã§ãã 16GBã®RAMãšSSDã§ãã Jestã¯ãçŸåšã®ç¶æ ã§ã¯å®å šã«äœ¿çšã§ããŸããã ç³ãèš³ãããŸããããã«ã«ãã«åãæ¿ããŸãã