我可能来晚了。希望这对那些希望使用react preset为laravel项目设置jest测试环境的人有帮助。
安装和配置
npm install jest
在项目根目录中创建jest的新配置文件
jest.config.js
module.exports = {
testRegex: 'resources/js/test/.*.test.js$'
}
添加
test
命令到
package.json
. 看我加了
"scripts": { "test": "jest"}
. package.json文件可能不同。我粘贴了整个package.json只是为了演示。不需要用这个来代替它。只需要添加脚本测试部分。
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"test": "jest"
},
"devDependencies": {
"@babel/preset-react": "^7.0.0",
"axios": "^0.18",
"bootstrap": "^4.0.0",
"cross-env": "^5.1",
"jest": "^24.1.0",
"jquery": "^3.2",
"laravel-mix": "^4.0.7",
"lodash": "^4.17.5",
"popper.js": "^1.12",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-test-renderer": "^16.8.2",
"resolve-url-loader": "^2.3.1",
"sass": "^1.15.2",
"sass-loader": "^7.1.0"
}
}
现在来测试它是否有效
创建示例测试
resources/js/test/index.test.js
/**resources/js/test/index.test.js**/
test('it works', () => {
expect(1 + 2).toBe(3)
})
最后通过运行测试
npm test
输出将类似于
> @ test /home/aimme/docker/demoproject
> jest
PASS resources/js/test/index.test.js
â it works (3ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 1.025s
Ran all test suites.