私は非常に最新の(December 2017)依存関係のスタックを使用しています。 Jestで同型反応テストを試すと、テストスーツは次のエラーで失敗し続けます。
* Test suite failed to run
[BABEL] /__tests__/router.test.js: Plugin/Preset files are not allowed to
export objects, only functions.
私の依存関係は次のとおりです。
"dependencies": {
"axios": "^0.17.1",
"babel-polyfill": "^6.26.0",
"cors": "^2.8.4",
"express": "^4.16.2",
"react": "^16.1.1",
"react-dom": "^16.1.1",
"react-router-dom": "^4.2.2"
},
"devDependencies": {
"@babel/core": "^7.0.0-beta.35",
"babel-cli": "^6.26.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^8.0.2",
"babel-jest": "^22.0.1",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"enzyme": "^3.2.0",
"enzyme-adapter-react-16": "^1.1.0",
"enzyme-to-json": "^3.2.2",
"eslint": "^4.11.0",
"eslint-plugin-react": "^7.5.1",
"html-webpack-plugin": "^2.30.1",
"jest": "^21.2.1",
"nodemon": "^1.11.0",
"parallelshell": "^3.0.2",
"react-test-renderer": "^16.2.0",
"regenerator-runtime": "^0.11.1",
"supertest": "^3.0.0",
"webpack": "^3.8.1",
"webpack-dev-server": "^2.9.4"
},
"peerDependencies": {
"babel-core": "^7.0.0-0"
}
.babelrc:
{
"presets": [
"env",
"react",
]
}
Jestが実行されない理由についての洞察はありますか?
バベルブリッジは、6〜7の問題をカバーするためのものです。
それは、ブリッジパッケージが行うことではなく、100%です。 babel-core
を使用するツールが@babel/core
にパススルーできるようにするだけです。パッケージ全体は この1行のコード です。
@babel/core
を使用している場合、Babel 7で動作するプラグインを使用する必要があります。つまり、babel-preset-react
を@babel/preset-react
に変更し、@babel/preset-env
と.babelrc
は次のとおりです。
{
"presets": [
"@babel/env",
"@babel/react",
]
}
同様に、babel-polyfill
は@babel/polyfill
でなければなりません。
Babel 7はまだ不安定なベータ版であるため、これについてはまだ十分に文書化されていません。
{
"presets": [
"env",
"react"
],
"test": [
"jest"
]
}
「テスト」の最後のコードブロックをbabel.rcに追加します。ここに、参照用の.babelrcコードを示します。
{
"presets": [
"env",
"react"
],
"plugins": [
"transform-class-properties",
"transform-object-rest-spread"
],
"test": [
"jest"
]
}
これがコマンドラインからの私の出力です
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 9.264s
Ran all test suites.
Done in 12.99s.