Как решить TypeError: environment.teardown не является функцией? - PullRequest
0 голосов
/ 05 июня 2018

я не могу тестировать приложение, созданное с помощью create-реагировать-приложение, все руководства говорят, что тест работает по умолчанию, но когда я пробую «тест пряжи», он требует установки «jest-cli» и после установки выдает ошибку «TypeError: environment.teardown не является функцией ".

Ответы [ 6 ]

0 голосов
/ 26 августа 2019

Если вы не использовали create-react-app для проекта:

  • Просто удалите jest, jest-cli, jest-environment-jsdom из package.json.
  • Удалите нод-модули, package-lock.jsonи yarn.lock.
  • Используйте npm --save i или yarn add, чтобы установить все из них, чтобы у каждого из них была одинаковая версия.

Это должно работать!

В моем случае я пропустил пакет jest-environment-jsdom.

0 голосов
/ 01 марта 2019

Для меня это был модуль импорта привязки.В основном для меня это был модуль экспорта / импорта привязки.

Обычно, если он был экспортирован с использованием module.export, вы должны импортировать с использованием require.Если он был экспортирован с использованием export или export default, вы должны импортировать с использованием import.

. Здесь не допускается смешивание.

0 голосов
/ 25 сентября 2018

После вечернего стука в голову по этому вопросу, я думаю, что наконец-то решил его.Сначала позвольте мне описать проблему:

Я также получаю:

TypeError: environment.teardown is not a function

Поскольку я пытался обновить Jest до последней версии.При запуске приложения с помощью Create-React-App оно устанавливает более раннюю версию Jest, которая не включает в себя все функции.Мне было интересно использовать функцию inlineSnapshots, которая позволяет вам утверждать визуализированные компоненты в разметке HTML внутри вашего тестового файла.

Есть несколько вещей, которые не включены в документацию Create-React-App или jest, которую выдолжен знатьЕсли вы хотите использовать новые функции jest, такие как inlineSnapshots, вам нужно сделать следующее:

  • пряжа добавить свежую версию jest и jest-environment-jsdom
  • пряжа добавитьprettier --dev (Это облегчает перезапись обратно в исходный файл.)
  • Добавьте блок jest env в самый верх каждого тестового сценария.

Докблок - этоКомментарий блока JS с прагматической отметкой "@".Для настройки среды jest вы должны добавить это в начало каждого тестового файла:

/**
 * @jest-environment jsdom
 */

Это указывает jest запустить тест в среде jsdom, которая должна соответствовать тому, что передается в разделе тестовых скриптовваш пакет.json.Мой выглядит примерно так (игнорируйте части с response-app-rewired):

   "scripts": {
      "start": "yarn run flow && react-app-rewired start",
      "build": "yarn run flow && react-app-rewired build",
      "test": "react-scripts test --env=jsdom"
   }

После всего этого я наконец смог заставить inlineSnapshots работать.

0 голосов
/ 31 августа 2018

Добавить свежую версию "jest-environment-jsdom" в "package.json".

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

В моем случае выдает эту ошибку, потому что я создаю свой реактивный проект с использованием create-react-app и устанавливаю jest.Определенным образом конфликтует.

Решаю, удаляя jest из моего проекта и используя create-react-app тестовый скрипт.

0 голосов
/ 05 июня 2018

Вам не нужно устанавливать jest-cli самостоятельно, он должен быть из коробки.

Попробуйте выполнить следующее:

  1. Удалить package-lock.json, yarn.lock и node_modules
  2. Удалить jest из зависимостей в package.json
  3. Тогда сделайте npm install или yarn install.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...