128

import/exportES6 から使用すると、すべての Jest テストがエラーで失敗します。

予期しない予約語

テスト対象のオブジェクトを古い学校のIIFE構文を使用するように変換すると、突然テストがパスします。または、さらに単純なテスト ケースを使用します。

   var Validation = require('../src/components/validation/validation'); // PASS
   //import * as Validation from '../src/components/validation/validation' // FAIL

同じエラー。明らかに、ここでインポート/エクスポートに問題があります。テスト フレームワークを満足させるためだけに ES5 構文を使用してコードを書き直すのは現実的ではありません。

私はバベルジェストを持っています。GitHubの問題からさまざまな提案を試みました。ここまでは無理です。

ファイルpackage.json

 "scripts": {
    "start": "webpack-dev-server",
    "test": "jest"
  },
      "jest": {
        "testPathDirs": [
          "__tests__"
        ],
        "testPathIgnorePatterns": [
          "/node_modules/"
        ],
        "testFileExtensions": ["es6", "js"],
        "moduleFileExtensions": ["js", "json", "es6"]
      },

ファイルbabelrc

{
  "presets": ["es2015", "react"],
  "plugins": ["transform-decorators-legacy"]
}

これに対する修正はありますか?

4

9 に答える 9

28

更新された構成のために、私はhttps://babeljs.io/setup#installationを使用しています

JEST を選択して満足してください:

参考までに、現在の構成は次のとおりです。

npm install --save-dev babel-jest

package.jsonファイルで、次の変更を行います。

{
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "transform": {
      "^.+\\.jsx?$": "babel-jest"
    }
  }
}

babel プリセットをインストールします。

npm install @babel/preset-env --save-dev

ファイルを作成し.babelrcます。

{
  "presets": ["@babel/preset-env"]
}

テストを実行します。

npm run test
于 2020-01-13T14:08:33.043 に答える