Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

cucumber
webdriver
javascript
Теги: #<Tag:0x00007fedb85d5cc0> #<Tag:0x00007fedb85d5b80> #<Tag:0x00007fedb85d5a40>

(Linux5) #1

не могу заставить работать 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 - не помогает
гугл не дал разумного ответа


(Eugene Tkachenko) #2

А если так?

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

(Linux5) #3

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


(Bolatbek) #4
node_modules\cucumber\bin\cucumber.js.cmd autotests\cucumber-test\features\documentation.feature

(Linux5) #5

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

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


(Bolatbek) #6

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


(Oleksandr Khotemskyi) #7

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


(Bolatbek) #8

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


(Bolatbek) #9

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

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

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


(Linux5) #10

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

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


(Oleksandr Khotemskyi) #11

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


(Bolatbek) #12

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

node node_modules\.bin\cucumber.js

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


(Linux5) #13

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


(Bolatbek) #15

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

node_modules\cucumber\.bin\

(Linux5) #16

так давайте еще раз - по порядку
вот тут 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)


(Linux5) #17

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


(Bolatbek) #18

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

  • создаешь свой каталог с тестами, к примеру “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" без точки

(Bolatbek) #19

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


(Linux5) #20

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


(Linux5) #21

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