Cucumber-js: 「from」引数は文字列型である必要があります。 受信したタイプは未定義です

作成日 2020年06月10日  ·  6コメント  ·  ソース: cucumber/cucumber-js

npmで作成して公開した手順を使用しようとしています
これが私が持っているエラーです:

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

これは未定義のthis.cwdあることがわかりました。 私に何ができる?
image

ステップをルートディレクトリ(package.jsonがある場所)にコピーして貼り付けても、エラーは発生しません。 したがって、問題は次のとおりです。node_modulesから--requireすることはできません。

最も参考になるコメント

この問題の解決策はありますか? Cucumber7でこのエラーが発生します

全てのコメント6件

ローカルディレクトリのnode_modulesから試しましたか?

この問題の解決策はありますか? Cucumber7でこのエラーが発生します

@ stefdelec @ VivekLandeこれはおそらくどちらかに関連しています

  • ホストプロジェクトとは異なるバージョンのキュウリに応じたステップパッケージ
  • ステップパッケージをローカルで使用するnpm link 'd

いずれの場合も、実行時に2つの異なるcucumber-jsインスタンスが発生し、これが発生する可能性があります( node_modules階層を調べることでこれを確認できます)。

私は#1540でこれを文書化することに取り組んでいます-回避策を見て、それがあなたのために働くかどうか見てください?

@davidjgossに感謝し

この回避策は私にはうまくいきません。 私は間違いなく他の場所にキュウリをインストールしていません。 私はこれを何時間も続けてきましたが、どこにも行きません。 これは私のパッケージのjson依存関係です:

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

node_modulesフォルダーを検索しましたが、キュウリが何度もそこにありません。 次はどこに行けばいいのかわからない

@csurfleet最小限の再現可能な例を作成していただけますか?

このページは役に立ちましたか?
0 / 5 - 0 評価