Ich habe Probleme bei der Integration von Komponententests in einen bestimmten Ordner meines Projekts.Unerwarteter Token-Import mit Jest (babel-eslint nicht verfügbar von getesteter Datei, symlink env)
Meine Architektur ist wie folgt:
|_ shared
|_ job-board
|_ admin-panel
job_board und Admin-Panel enthalten jeweils eine Symlink zu zeigen gemeinsam, bei ./client/src/shared
und enthalten jeweils einen node_modules
Ordner mit babel- Eslint installiert. shared enthält keinen Ordner node_modules und beruht auf den Knoten node_modules des anderen Ordners.
Mit dieser Architektur habe ich es geschafft, alle Werkzeuge zu konfigurieren, die ich benutze (Webpack, eslint, eslint-loader, ... aber Jest).
Das Problem ist, wenn ich eine * .test.js Datei in job_board/*
oder admin_panel/*
, babel-Scherz korrekt auf diese Datei zu erstellen, angewendet wird, aber wenn ich diese Datei in shared/*
, babel-Scherz schaffen nicht angewendet wird (wie babel-Scherz in shared
nicht verfügbar ist), wie der folgende Fehler beweist:
FAIL ..\shared\utils\tests\StringUtils.test.js
● Test suite failed to run
SyntaxError: Unexpected token import
Hier ist mein Scherz-config.json Datei:
{
"moduleFileExtensions": [
"js"
],
"moduleNameMapper": {
"\\.(css|scss)$": "identity-obj-proxy"
},
"modulePaths": [
"<rootDir>/client"
],
"testPathDirs": [
"<rootDir>",
"<rootDir>/../shared"
],
"testRegex": "(\\.|/)test\\.jsx?$"
}
(Hinweis th bei I "<rootDir>/../shared"
zu testPathDirs
hinzuzufügen hatte, dass so * .test.js Dateien gefunden werden können)
Und meine .babelrc Datei:
{
"plugins": [
"transform-decorators-legacy",
"transform-object-rest-spread"
],
"presets": [
["es2015", { "modules": false }],
"react",
"stage-0"
],
"env": {
"development": {
"presets": [
"react-hmre"
]
},
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
Schließlich laufe ich meine Tests mit: node --harmony_proxies node_modules/jest-cli/bin/jest.js --config ./jest-config.json
Fehle ich etwas aus, oder ist das wirklich ein Mangel an einer Funktion, die die Möglichkeit gibt, eine "Wurzel" für babel-eslint oder etwas zu bieten?
Ich habe auch ein Problem auf dem Jest Repo geöffnet, aber es wurde geschlossen. So, hier bin ich!
Jest Konfiguration oben eingefügt.
Scherz-cli: 18.1.0
Knoten: 5.6.0
npm: 3.6.0
OS: Windows 10
Ja, ich habe versucht, keine Änderung. Da ich webpack2 verwende, deaktiviere ich die Umwandlung von Modulen zu commonJS in dev/prod, aber aktiviere es in test env (siehe meine .babelrc). – Zephir77167