t.me/atinfo_chat Telegram группа по автоматизации тестирования

cucumber+javascript не запускается простой пример

Теги: #<Tag:0x00007f74841ca5e8> #<Tag:0x00007f74841ca520> #<Tag:0x00007f74841ca368>

не могу заставить работать Cucumber.js из под винды

берем пример из официальной доки

пытаюсь запустить

$ node_modules/cucumber/bin/cucumber.js autotests/cucumber-test/features/documentation.feature
или в виндовом виде
node_modules\cucumber\bin\cucumber.js autotests\cucumber-test\features\documentation.feature
или так
cucumber autotests\cucumber-test\features\documentation.feature
или так
cucumber-js autotests\cucumber-test\features\documentation.feature
ПОЛУЧАЮ

<ПУТЬ>\cucumber.js:2
basedir=$(dirname “$(echo “$0” | sed -e ‘s,\,/,g’)”)
^^^^^^^
SyntaxError: missing ) after argument list

пробовал и так и эдак - даже откатился на версию cucumber 1.3.3 - не помогает
гугл не дал разумного ответа

1 Симпатия

А если так?

basedir=$(dirname "$(echo '$0' | sed -e 's,\,/,g')")

нет, не помогает

node_modules\cucumber\bin\cucumber.js.cmd autotests\cucumber-test\features\documentation.feature

Нет там такого файла… только cucumber.js

Ps сделал аналогичную тему тут

У вас линуксовая машина?

Вы пытаетесь юниксовые команды запускать под виндой

А, так это ваш вопрос ))).
Должен быть там файл с расширением *.cmd.
Сделайте еще раз npm install cucumber

1 Симпатия

Поищите файлы:

cucumber.js.cmd
cucumberjs.cmd
cucumber-js.cmd

Они должны быть в каталоге .bin

нет
windows 7x64 бит
попробовал дома на ноуте - аналогично.
Либо никто не пользуется cucumber.js на винде, либо ошибка появилась только что …

попробую на виртуалке на досуге

вы хоть сообщение об ошибке киньте какое получаете

На крайний случай попробуй запустить тесты так:

node node_modules\.bin\cucumber.js

PS: я сижу под виндой и давно пишу на огурце.

и что? у меня сигвин стоит - все прекрасно запускается

Какие файлы есть в каталоге :

node_modules\cucumber\.bin\

так давайте еще раз - по порядку
вот тут https://github.com/cucumber/cucumber-js/tree/master/bin
находится ровно 1 js файл . у меня ровно тоже самое
все остальные cmd файлы находятся в корне (у меня аналогично)

Может я ставлю что не то ?
ЗЫ
полное сообщение об ошибке (это винда - просто сигвин)

MINGW64 /c/Igor/Development/node-v6.11.3
$ cucumber-js.cmd tests/cucumber-test/features/documentation.feature
C:\Igor\Development\node-v6.11.3\cucumber.js:2
basedir=$(dirname “$(echo “$0” | sed -e ‘s,\,/,g’)”)
^^^^^^^

SyntaxError: missing ) after argument list
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions…js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at ProfileLoader. (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\lib\cli\profile_loader.js:55:27)
at next (native)
at tryCatcher (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\node_modules\bluebird\js\release\util.js:16:23)
at PromiseSpawn._promiseFulfilled (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\node_modules\bluebird\js\release\gene
rators.js:97:49)
at Promise._settlePromise (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\node_modules\bluebird\js\release\promise.js:5
74:26)
at Promise._settlePromise0 (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\node_modules\bluebird\js\release\promise.js:
614:10)
at Promise._settlePromises (C:\Igor\Development\node-v6.11.3\node_modules\cucumber\node_modules\bluebird\js\release\promise.js:
693:18)

есть node_modules\cucumber\bin\ без точки
там один файл cucumber.js

А, теперь понятно, ты не то и не оттуда запускаешь ))).
По пунктам:

  • создаешь свой каталог с тестами, к примеру “tests”
  • переходишь в каталог и делаешь “npm install cucumber” (пока не заморачиваемся с package.json и т.д.)
  • создаешь каталог features и туда скидываешь твои тесты *.feature, плюс нужные каталог step_definitions и прочие support
  • после шага с npm install появится каталог node_modules, внутри которого есть “.bin” с точкой
  • находясь там же в каталоге “tests” запускаешь как писалось выше “node_modules.bin\cucumber,js.cmd”

А тот каталог, который ты показал сообщением выше - это каталог самого пакета ноды, оттуда ничего никогда не запускают. Только из “.bin”.

То есть в итоге будет такая структура:

tests
- features
-- step_definitions
-- support // файлы с world.js и прочим барахлом
-- *..feature // твой тест

- node_modules
-- .bin
-- <тут куча пакетов>,  в том числе и cucumber, в котором ты нашел каталог "bin" без точки

Пример надо было внимательнее смотреть здесь:

спасибо - понял сейчас попробую
Пример брал именно оттуда где вы написали…
PS у меня похоже в любом случаем ставится в корневую папку - сейчас немного поиграюсь и отпишусь

Все заработали … Спасибо большое !
во истину хипстерские технологии …