Как настроить Jest с Babel - PullRequest
       40

Как настроить Jest с Babel

0 голосов
/ 17 октября 2019

Я настраиваю простой проект для тестирования с использованием jest и babel. Как мне заставить их работать вместе?

Я пробовал инструкции, упомянутые здесь: https://jestjs.io/docs/en/getting-started, но не смог этого сделать.

abc.test.js

import {PI} from "./mathconsts";

describe("tests",()=>{
    test('assert pi', () => {
        expect(PI).toBe(3.14);
    });
});

mathconsts.js

export const PI = 3.14;

package.json

{
  "name": "simple-testing",
  "version": "1.0.0",
  "description": "Project to write simple tests",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  },
  "dependencies": {
    "axios": "0.19.0",
    "dotenv": "8.1.0"
  },
  "devDependencies": {
    "@babel/core": "^7.6.4",
    "@babel/preset-env": "^7.6.3",
    "babel-jest": "^24.9.0",
    "jest": "24.9.0",
    "prettier": "1.18.2"
  }
}

babel.config.js

module.exports = {
    presets: [
        [
            '@babel/preset-env',
            {
                targets: {
                    node: 'current',
                },
            },
        ],
    ],
};

jest.config.js

module.exports = {
  transformIgnorePatterns: [
    "/node_modules/"
  ],
}

Обнаружена ошибка:

  ● Test suite failed to run

    Jest encountered an unexpected token

    This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

    By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

    Here's what you can do:
     • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
     • If you need a custom transformation specify a "transform" option in your config.
     • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

    You'll find more details and examples of these config options in the docs:
    https://jestjs.io/docs/en/configuration.html

    Details:

    /Users/tests/abc.test.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import { PI } from "./mathconsts";
                                                                                                    ^

    SyntaxError: Unexpected token {

      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)

Как мне заставить его работать?

...