Cucumber-js: Аргумент «от» должен быть строкового типа. Полученный тип не определен

Созданный на 10 июн. 2020  ·  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), у меня не будет ошибок. Итак, проблема в следующем: я не могу не --require from node_modules.

Самый полезный комментарий

какое-либо решение этой проблемы? Я получаю эту ошибку с огурцом 7

Все 6 Комментарий

вы пробовали использовать node_modules в своем локальном каталоге?

какое-либо решение этой проблемы? Я получаю эту ошибку с огурцом 7

@stefdelec @VivekLande, скорее всего, это связано с

  • ваш пакет шагов в зависимости от версии огурца, отличной от версии вашего основного проекта
  • работать локально с вашим пакетом шагов npm link 'd

В любом случае вы можете получить два разных экземпляра 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 рейтинги