我今天刚开始玩Jest。我的__tests__
目录中有一个简单的测试文件。这是当前的测试文件:
describe('ChangeCalendarView', function() {
it('true', function() {
expect(3).toBe(3);
})
});
这没有问题。当我添加另一个文件时,使用相同的确切代码,而不是描述:
describe('ChangeTimePeriod', function() {
it('true', function() {
expect(3).toBe(3);
})
});
然后我收到此错误:
/usr/local/lib/node_modules/jest-cli/node_modules/node-worker-pool/Worker.js:93
throw new Error('Received unexpected data from child process: ' + data);
^
Error: Received unexpected data from child process: {
"error": "Error: ENOENT, open '/usr/local/lib/node_modules/jest-cli/.haste_cache/cache-react-calendar-component'\n\n"
}
at Worker._onStdout (/usr/local/lib/node_modules/jest-cli/node_modules/node-worker-pool/Worker.js:93:11)
这对任何人都有意义吗?
答案 0 :(得分:3)
我通过使用babel-jest解决了这个问题。这是我的package.json
{
"name": "myapp",
"version": "0.0.0",
"dependencies": {
"classnames": "^2.1.3",
"dev": "^0.1.3",
"flux": "^2.0.3",
"grunt": "^0.4.5",
"gulp": "^3.9.0",
"immutable": "^3.7.4",
"install": "^0.1.8",
"lodash": "^3.10.0",
"node-simple-static-server": "^1.1.0",
"react-bootstrap": "^0.23.7",
"react-router": "^0.13.3",
"react-router-bootstrap": "^0.18.0",
"react-tools": "^0.13.0-beta.2",
"stackup": "^1.0.1"
},
"devDependencies": {
"babel-jest": "^5.3.0",
"babelify": "^6.1.2",
"browser-sync": "latest",
"browserify-shim": "^3.8.0",
"del": "~0.1.3",
"gulp-autoprefixer": "~1.0.1",
"gulp-bower": "0.0.6",
"gulp-cache": "~0.2.4",
"gulp-imagemin": "latest",
"gulp-jshint": "~1.8.5",
"gulp-load-plugins": "~0.7.0",
"gulp-ruby-sass": "~0.7.1",
"gulp-size": "~1.1.0",
"gulp-strip-debug": "^1.0.2",
"gulp-stylus": "~2.0.1",
"gulp-uglify": "^1.0.2",
"gulp-useref": "~0.4.4",
"gulp-util": "~3.0.1",
"gulp-webserver": "latest",
"jest-cli": "*",
"main-bower-files": "~2.6.2",
"react": "latest",
"react-tools": "latest",
"reactify": "latest",
"strip-debug": "^1.0.1",
"vinyl-source-stream": "^1.0.0",
"watchify": "~2.1"
},
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"test": "jest"
},
"jest": {
"scriptPreprocessor": "../node_modules/babel-jest",
"testFileExtensions": [
"es6",
"js"
],
"moduleFileExtensions": [
"js",
"json",
"es6"
],
"rootDir": "./app",
"collectCoverage": true,
"unmockedModulePathPatterns": [
"react",
"events",
"lodash"
]
},
"browserify": {
"transform": [
"browserify-shim",
[
"reactify",
{
"es6": true
}
]
]
},
"browser": {
"jquery": "./app/bower_components/jquery/dist/jquery.js"
},
"browserify-shim": {
"jquery": "$"
}
}
答案 1 :(得分:1)
Jest用于检测测试文件的glob模式。默认情况下,它会查找 tests 文件夹中的.js和.jsx文件,以及后缀为.test或.spec的所有文件(例如Component.test.js或Component.spec.js) )。它还会找到名为test.js或spec.js的文件。 因此,请使用后缀.test命名您的测试文件。类似 pagination.test.js 。