Nie mogę przetestować aplikacji utworzonej za pomocą aplikacji Create-React-Recore.

Wszystkie przewodniki mówi, że test pracuje domyślnie, ale kiedy próbuję "test przędzy", wymaga zainstalowania "jest-cli" i po instalacji podaje błąd:

TypeError: Environment.teardown nie jest funkcją

8
user8736389 5 czerwiec 2018, 12:02

5 odpowiedzi

Najlepsza odpowiedź

Nie musisz być konieczności instalowania go-cli. Powinien wyjść z pudełka.

Spróbuj wykonać następujące czynności:

  1. Usuń pakiet-Lock.json, yarn.lock i Node_modules
  2. Usuń jesz z zależności w pakiecie.Json
  3. Następnie zrób npm install lub yarn install.
18
Peter Mortensen 13 październik 2020, 19:17

Dla mnie był to wiązanie importu modułu. Zasadniczo dla mnie, był to moduł eksportowy / importowy wiązanie.

Zasadniczo, jeśli został wyeksportowany przy użyciu module.export, powinieneś zaimportować przy użyciu require. Jeśli został wyeksportowany przy użyciu export lub export default, należy zaimportować przy użyciu import.

Nie jest tutaj mieszanie.

0
Peter Mortensen 13 październik 2020, 19:31

Dodaj świeżą wersję "Jest-Environment-JSDOM", aby plik "package.json".

7
Peter Mortensen 13 październik 2020, 19:20

W moim przypadku rzuca ten błąd, ponieważ tworzę projekt reakcji przy użyciu create-react-app i zainstaluj jest. W określony sposób konflikty.

I rozwiązuj , usuwając jest z mojego projektu i za pomocą skryptu testowego create-react-app.

1
Peter Mortensen 13 październik 2020, 19:20

Po wieczornym uderzeniu mojej głowy w ten problem, myślę, że w końcu go rozwiązał. Po pierwsze, pozwól mi opisać problem:

Dostałem też:

TypeError: Environment.teardown nie jest funkcją

Ponieważ próbowałem uaktualnić najnowszą wersję. Podczas uruchamiania aplikacji z aplikacją Create-React-APP zainstaluje wcześniejszą wersję najwieżej, która nie zawiera wszystkich funkcji. Byłem zainteresowany korzystaniem z funkcji Inlinesnapshots, co pozwala na zapewnienie świadczonych komponentów przed Markup HTML w pliku testowym.

Istnieje kilka rzeczy, które nie są wliczone w dokumentację z aplikacji Create-React-APP lub Jest, o której powinieneś być świadomy. Jeśli chcesz używać nowszych funkcji, takich jak Inlinesnapshots, musisz wykonać następujące czynności:

  • Przędza dodaje świeżą wersję najcięcia i żartów-jest-jsdom
  • Przędza Dodaj Prettier --dev (to jest ułatwienie przepisywania z powrotem do pliku źródłowego).
  • Dodaj jest envblock na samotną część każdego skryptu testowego.

Dokblock jest komentowaniem blokiem JavaScript z markiem pragma "@". Do ustawiania środowiska, dodasz to do górnej części każdego pliku testowego:

/**
 * @jest-environment jsdom
 */

To zobowiązuje jesz, aby uruchomić test w środowisku JSDOM, który powinien być zgodny z tym, co jest przekazywane w sekcji skryptów testowych w pliku package.json . Mój wygląda na coś takiego (zignoruj części za pomocą Revired-App-APIred):

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

Po tym wszystkim, byłem w końcu w stanie uzyskać inninesnapshots do pracy.

1
Peter Mortensen 13 październik 2020, 19:29