Я пытался настроить Jest, чтобы он мог запускать тестовые случаи, написанные в другой папке в той же иерархии.Но выдает следующее сообщение об ошибке:
Я пытаюсь запустить jest из папки as_test, в то время как файлы моего тестового примера и фактический код, который нужно проверить, находятся в папке asCore.
Я думаю, что Jest не можетнайти фермент в том виде, в котором он находится в node_modules as_test, а тестовый пример, в котором он используется, - в папке asCore.
Может кто-нибудь помочь мне решить эту проблему.
● Test suite failed to run
Cannot find module 'enzyme' from 'Button.test.js'
1 |
> 2 | import { shallow, mount } from 'enzyme';
| ^
3 | import Button from '../JSX/Button';
4 |
5 |
at Resolver.resolveModule (as_test/node_modules/jest-resolve/build/index.js:221:17)
at Object.<anonymous> (asCore/components/button/__tests__/Button.test.js:2:1)
Jest configфайлы и моя разработка находятся в структуре ниже.
Package.JSON
{
"private": true,
"version": "0.0.0",
"name": "example-enzyme",
"dependencies": {
"react": "16.5.2",
"react-dom": "16.5.2"
},
"devDependencies": {
"@babel/core": "^7.1.2",
"@babel/node": "^7.0.0",
"@babel/preset-env": "^7.1.0",
"@babel/preset-react": "^7.0.0",
"@babel/register": "^7.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "*",
"babel-loader": "^8.0.4",
"jest": "*",
"react-test-renderer": "*",
"enzyme": "*",
"enzyme-adapter-react-16": "*",
"enzyme-to-json": "*",
"jest-html-reporter": "*"
},
"scripts": {
"test": "jest --no-cache"
}
}
Jest.config.js
const { resolve } = require('path');
const root = resolve(__dirname, '..');
console.log(root);
module.exports = {
"verbose": true,
"rootDir": root,
"setupTestFrameworkScriptFile": "<rootDir>/as_test/config/jestSetup.js",
"collectCoverage": true,
"coverageDirectory":"<rootDir>/as_test/coverage",
"coverageReporters": [
"html", "text"
],
"moduleDirectories": ["node_modules", "bower_components", "<rootDir>/*"],
"testResultsProcessor": "<rootDir>/as_test/node_modules/jest-html-reporter",
"snapshotSerializers": ["<rootDir>/as_test/node_modules/enzyme-to-json/serializer"],
"moduleNameMapper": {
"core/extendables/reactHelper$": "<rootDir>/as_test/deps/js/reactHelper.js",
"core/components/button/JSX-generated/Button$": "<rootDir>/as_test/deps/jsx/Button"
}
};
babel.config.js
module.exports = {
presets: [['@babel/preset-env'],'@babel/preset-react'],
};
JestSetup.js
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Enzyme.configure({ adapter: new Adapter() });