web-dev-qa-db-fra.com

Pourquoi ne plaisante-t-on pas? "TypeError: environment.setup n'est pas une fonction"

vraiment se battre ici.

Les tests My Circle CI ont échoué avec un

FAIL  ./App.test.js
  ● Test suite failed to run

    SyntaxError: Unexpected token )

J'essaye de lancer Jest localement sur ma machine (une CRNA) mais j'obtiens l'erreur suivante:

TypeError: environment.setup is not a function

Donc, les deux semblent être des problèmes de version de nœud/ES6/babel, non?

Je me suis battu à travers quelques erreurs avant (Path was expecting string etc), que j'ai contourné en installant jest-cli et en changeant les versions de nœud, etc. 

je suis maintenant sur: noeud v8.9.1 npm 5.5.1

Mais maintenant je suis totalement perplexe.

Alors:

TypeError: environment.setup is not a function est spécifique au paquet jest-cli.

j'ai essayé:

i) en ajoutant ce qui suit à la configuration de la plaisanterie dans pkg json:

  "jest": {
    "preset": "jest-expo",
    "testMatch": [
      "*.test.js",
      "**/?(*.)(spec|test).js?(x)"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!(react-native|jest-cli)/)"
    ]
  }

(Je pensais que cela pourrait 'babel' le module, mais hélas aucun changement dans le message d'erreur)

ii) Changer de version de babel-core, installer babel-node-modules, changer de version de React Native, jest, etc., etc. Pas de joie.

Aidez-moi?

Y at-il quelque chose qui me manque en ce qui concerne l'obtention d'un projet Create React Native App pour exécuter des tests de plaisanterie sur le noeud v5-v8?

Ça me stoppe et ça a du mal à mettre en place mon installation Circle CI. 

Envoyez de l’aide ou une sorte de bière IPA pour calmer ma frustration. ????

7
NewbieAid

J'ai fini par faire fonctionner ça en:

i) installer babel-jest

ii) babel-preset-react-native (au lieu du module stage-0)

iii) changer le script de test en test: jest seulement

iv) enlever la variable env de .babelrc (donc c'est juste "presets": ["react-native"] maintenant)

v) changer mon config.yml en un circle.yml (ceci éliminait une erreur de version de noeud)

vi) calcul des noeuds_modules, complet npm install (/ yarn

vii) a déplacé mon App.test.js de la racine vers son propre dossier/emplacement __tests__/App.test.js.

Je pense que babel-jest était le nœud principal, mais même dans ce cas, j’obtenais des erreurs propTypes non trouvées et je devais vérifier mes dépendances entre pairs, dont certaines nécessitaient des mises à jour antérieures à la version bêta.

Mon paquet json:

{
  "name": "MyAppName",
  "jest": {
    "preset": "react-native"
  },
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "babel-eslint": "^8.0.1",
    "babel-jest": "21.2.0",
    "babel-preset-react-native": "4.0.0",
    "babel-plugin-module-resolver": "^3.0.0",
    "enzyme": "^3.2.0",
    "enzyme-adapter-react-16": "^1.1.0",
    "eslint": "^4.9.0",
    "eslint-plugin-import": "^2.8.0",
    "eslint-plugin-promise": "^3.6.0",
    "eslint-plugin-react": "^7.4.0",
    "flow-bin": "0.53.1",
    "jest": "^21.2.1",
    "react-dom": "^16.2.0",
    "react-test-renderer": "16.2.0",
    "sinon": "^4.1.3"
  },
  "scripts": {
    "start": "react-native start",
    "Android": "react-native run-Android",
    "ios": "react-native run-ios",
    "test": "jest"
  },
  "dependencies": {
    "jest-cli": "^21.2.1",
    "react": "16.2.0",
    "react-native": "^0.51.0"
  }
}
1
NewbieAid