Jest Не удалось найти предустановленный "env" относительно каталога - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь использовать Jest для проверки моего API узла. У меня есть простой скрипт npm, который вызывает jest

{
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "test": "jest",
    "precommit": "lint-staged"
  },
  "dependencies": {
    "@koa/cors": "^2.2.1",
    "apollo-link-http": "^1.5.4",
    "apollo-server-koa": "^1.3.6",
    "axios": "^0.18.0",
    "dotenv": "^6.0.0",
    "graphql": "^0.13.2",
    "graphql-tools": "^3.0.4",
    "koa": "^2.5.1",
    "koa-bodyparser": "^4.2.1",
    "koa-router": "^7.4.0",
    "node-fetch": "^2.1.2"
  },
  "devDependencies": {
    "husky": "^0.14.3",
    "jest": "^23.3.0",
    "lint-staged": "^7.2.0",
    "nodemon": "^1.17.5",
    "prettier": "^1.13.7"
  },
  "lint-staged": {
    "gitDir": "./",
    "*.{js,json}": [
      "prettier --no-semi --print-width 140 --tab-width 2 --write",
      "git add"
    ]
  },
  "jest": {
    "bail": true,
    "verbose": true,
    "testMatch": [
      "<rootDir>/**/*.test.js"
    ]
  }
}

В моем package.json есть jest config, который сообщает jest, что тестировать:

"jest": {
    "bail": true,
    "verbose": true,
    "testMatch": [
      "<rootDir>/**/*.test.js"
    ]
  }

Я вообще не использую babel в своем проекте, но по какой-то причине, когда я пытаюсь запустить свой единственный тест в ./test.test.js

test("Example test", () => {
  expect(true).toBe(true)
})

Я получаю следующую ошибку:

$ jest
 FAIL  ./test.test.js
  ● Test suite failed to run

    Couldn't find preset "env" relative to directory "/Users/<myusername>/Projects"

      at node_modules/babel-core/lib/transformation/file/options/option-manager.js:293:19
          at Array.map (<anonymous>)
      at OptionManager.resolvePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:275:20)
      at OptionManager.mergePresets (node_modules/babel-core/lib/transformation/file/options/option-manager.js:264:10)
      at OptionManager.mergeOptions (node_modules/babel-core/lib/transformation/file/options/option-manager.js:249:14)
      at OptionManager.init (node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
      at File.initOptions (node_modules/babel-core/lib/transformation/file/index.js:212:65)
      at new File (node_modules/babel-core/lib/transformation/file/index.js:135:24)
      at Pipeline.transform (node_modules/babel-core/lib/transformation/pipeline.js:46:16)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        7.563s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Я попытался добавить предустановку Babel Env, но все еще получаю ту же ошибку. Я не думаю, что мне нужно было бы добавлять конфигурацию babel только для тестирования.

Я использую версию узла 8.11.3 и пряжу 1.7.0, и в проекте локально установлен jest с использованием версии ^23.2.0

Как мне сказать, чтобы Джест не беспокоился об окружающем мире?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

babel-jest добавляется автоматически при установке Jest. Если вы не собираетесь переносить код ES6 (похоже на ваш случай), просто сбросьте конфигурацию:

// package.json
{
  "jest": {
    "transform": {}
  }
}
0 голосов
/ 06 июля 2018

Эта ошибка обычно возникает, когда вы забыли добавить зависимость babel-preset-env.

Как вы уже сказали, что пробовали это решение, попробуйте посмотреть, является ли это какой-то конкретной версией babel-preset-env.

Какую версию вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...