Cucumber-js: L'argument "from" doit être de type chaîne. Type reçu non défini

Créé le 10 juin 2020  ·  6Commentaires  ·  Source: cucumber/cucumber-js

J'essaie d'utiliser les étapes que j'ai écrites et publiées sur npm
Voici l'erreur que j'ai :

> cucumber-js e2e/src/**/*.feature --require ./node_modules/@myProject/uat/dist/*.step.js

TypeError [ERR_INVALID_ARG_TYPE]: The "from" argument must be of type string. Received type undefined
at validateString (internal/validators.js:125:11)
at Object.relative (path.js:1162:5)
at getDefinitionLineAndUri (/home/myname/Documents/myProject/mysubProjectV2/node_modules/@myProject/uat/node_modules/cucumber/lib/support_code_library_builder/build_helpers.js:184:27)
at buildStepDefinitionConfig (/home/myname/Documents/myProject/mysubProjectV2/node_modules/@myProject/uat/node_modules/cucumber/lib/support_code_library_builder/build_helpers.js:124:7)
at SupportCodeLibraryBuilder.defineStep (/home/myname/Documents/myProject/mysubProjectV2/node_modules/@myProject/uat/node_modules/cucumber/lib/support_code_library_builder/index.js:51:79)
at Object.<anonymous> (/home/myname/Documents/myProject/mysubProjectV2/node_modules/@myProject/uat/dist/click.step.js:40:12)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at supportCodePaths.forEach.codePath (/home/myname/Documents/myProject/mysubProjectV2/node_modules/cucumber/lib/cli/index.js:142:42)
at Array.forEach (<anonymous>)
at Cli.getSupportCodeLibrary (/home/myname/Documents/myProject/mysubProjectV2/node_modules/cucumber/lib/cli/index.js:142:22)

J'ai trouvé que c'est this.cwd qui n'est pas défini. Que puis-je faire?
image

Si je copie coller mes étapes dans le répertoire racine (où se trouve le package.json), je n'ai aucune erreur. Le problème est donc le suivant : je ne peux pas ne pas --require from node_modules.

Commentaire le plus utile

une solution à ce problème ? Je reçois cette erreur avec Cucumber 7

Tous les 6 commentaires

as-tu essayé depuis node_modules dans ton répertoire local ?

une solution à ce problème ? Je reçois cette erreur avec Cucumber 7

@stefdelec @VivekLande cela est probablement lié à l'un ou l'autre

  • votre package d'étapes en fonction d'une version de concombre différente de celle de votre projet hôte
  • travailler localement avec votre package de pas npm link 'd

Dans les deux cas, vous pouvez vous retrouver avec deux instances cucumber-js différentes au moment de l'exécution, ce qui peut provoquer cela (vous pouvez le vérifier en regardant dans votre hiérarchie node_modules ).

Je travaille à documenter cela dans #1540 - jetez un œil à la solution de contournement et voyez si cela fonctionne pour vous ?

Merci @davidjgoss , je suis en mesure de résoudre le problème avec la solution que vous avez fournie.

Cette solution de contournement ne fonctionne pas pour moi. Je n'ai certainement pas installé de concombre ailleurs. Je suis dessus depuis des heures et je n'avance nulle part. Voici les dépendances de mon package json :

"dependencies": {
    "@cucumber/cucumber": "^7.0.0",
    "@cucumber/cucumber-expressions": "^12.0.0",
    "gherkin-testcafe": "^5.0.0",
    "testcafe": "^1.13.0"
  }

J'ai recherché mon dossier node_modules et le concombre n'y est pas plusieurs fois. Je ne sais pas où aller ensuite

@csurfleet pouvez-vous s'il vous plaît créer un exemple reproductible minimal ?

Cette page vous a été utile?
0 / 5 - 0 notes