Cucumber-js: Das Argument "von" muss vom Typ string sein. Empfangener Typ undefiniert

Erstellt am 10. Juni 2020  ·  6Kommentare  ·  Quelle: cucumber/cucumber-js

Ich versuche, Schritte zu verwenden, die ich auf npm geschrieben und veröffentlicht habe
Hier ist der Fehler, den ich habe:

> 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)

Ich habe festgestellt, dass dies this.cwd was nicht definiert ist. Was kann ich tun?
image

Wenn ich meine Schritte kopiere und in das Stammverzeichnis (in dem sich die package.json befindet) einfüge, habe ich keinen Fehler. Das Problem ist also: Ich kann nicht --require from node_modules.

Hilfreichster Kommentar

irgendeine Lösung für dieses Problem? Ich erhalte diesen Fehler mit Cucumber 7

Alle 6 Kommentare

hast du es von node_modules in deinem lokalen Verzeichnis versucht?

irgendeine Lösung für dieses Problem? Ich erhalte diesen Fehler mit Cucumber 7

@stefdelec @VivekLande das hängt wahrscheinlich mit entweder zusammen

  • Ihr steps-Paket hängt von einer anderen Gurkenversion als Ihrem Hostprojekt ab
  • lokal mit Ihrem steps-Paket arbeiten npm link 'd

In beiden Fällen können Sie zur Laufzeit zwei verschiedene cucumber-js-Instanzen haben, die dies verursachen können (Sie können dies überprüfen, indem Sie in Ihrer node_modules Hierarchie nachsehen).

Ich arbeite daran, dies in #1540 zu dokumentieren - werfen Sie einen Blick auf die Problemumgehung und sehen Sie, ob das für Sie funktioniert?

Danke @davidjgoss , ich kann das Problem mit der von Ihnen bereitgestellten Lösung lösen.

Dieser Workaround funktioniert bei mir nicht. Ich habe definitiv keine Gurke woanders installiert. Ich bin seit Stunden dabei und komme nirgendwo hin. Dies sind meine Paket-Json-Abhängigkeiten:

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

Ich habe meinen Ordner node_modules durchsucht und Gurke ist nicht mehrmals darin enthalten. Ich habe keine Ahnung, wohin ich als nächstes gehen soll

@csurfleet können Sie bitte ein minimal reproduzierbares Beispiel erstellen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen