Error running specs in fresh project
nuclearglow opened this issue · 7 comments
Describe the bug
A fresh install of gauge, gauge-ts and gauge init ts yields an error...
To Reproduce
Steps to reproduce the behavior:
npm install -g @getgauge/cli
gauge install ts
gauge init ts
npm i
gauge run specs/
Expected behavior
Running gauge TS project
Screenshots
n/a
Desktop (please complete the following information):
-
OS: [e.g. linux]
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" -
Gauge and plugin version [run
gauge -v
]
gauge -v
Gauge version: 1.0.7
Commit Hash: ed7b4fd6
Plugins
html-report (4.0.9)
js (2.3.8)
screenshot (0.0.1)
ts (0.0.5)
-
Node version [run
node -v
]
node -v
v12.13.1 -
Npm version [run
npm -v
]
npm -v
6.12.1
Additional context
A couple weeks back everything was working fine on my machine, this is new... :-(
npm install -g @getgauge/cli
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
/home/dwp6827/.nvm/versions/node/v12.13.1/bin/gauge -> /home/dwp6827/.nvm/versions/node/v12.13.1/lib/node_modules/@getgauge/cli/bin/gauge
@getgauge/cli@1.0.7 install /home/dwp6827/.nvm/versions/node/v12.13.1/lib/node_modules/@getgauge/cli
node ./src/index.js
Fetching download url for Gauge version 1.0.7
Downloading https://github.com/getgauge/gauge/releases/download/v1.0.7/gauge-1.0.7-linux.x86_64.zip to ./bin
- @getgauge/cli@1.0.7
added 82 packages from 75 contributors in 8.208s
gauge install ts
.
Successfully installed plugin 'ts' version 0.0.5
gauge install screenshot
Plugin screenshot was successfully added to the project
gauge install html-report
........................
gSuccessfully installed plugin 'html-report' version 4.0.9
gauge install js
..........
[grpc] Success: "/tmp/gauge_temp1583938237445470161/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node" is installed via remote
Attention
Console-stamp version 3.0.0 Release Candidate is out. Install by using the tag '@next'. NB: Breaking changes.
For more details goto: https://www.npmjs.com/package/console-stamp/v/next
added 172 packages from 164 contributors and audited 886 packages in 4.224s
found 1 moderate severity vulnerability
run npm audit fix
to fix them, or npm audit
for details
auSuccessfully installed plugin 'js' version 2.3.8
gauge init ts
Downloading ts.zip
.
Copying Gauge template ts to current directory ...
grpc@1.24.2 install /home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/grpc
node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using needle for node-pre-gyp https download
[grpc] Success: "/home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node" is installed via remote
protobufjs@6.8.8 postinstall /home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/protobufjs
node scripts/postinstall
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN gauge-ts-template@0.0.1 No repository field.
npm WARN gauge-ts-template@0.0.1 No license field.
added 122 packages from 138 contributors and audited 201 packages in 5.053s
found 0 vulnerabilities
Successfully initialized the project. Run specifications with "gauge run specs/".
gauge run specs/
internal/modules/cjs/loader.js:800
throw err;
^
Error: Cannot find module '../gen/messages'
Require stack:
- /home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/gauge-ts/dist/connection/GaugeConnection.js
- /home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/gauge-ts/dist/connection/GaugeListener.js
- /home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/gauge-ts/dist/GaugeRuntime.js
- /home/dwp6827/workspace/dwp/taiko-ts-test2/[eval].ts
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)
at Function.Module._load (internal/modules/cjs/loader.js:690:27)
at Module.require (internal/modules/cjs/loader.js:852:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/home/dwp6827/workspace/dwp/taiko-ts-test2/node_modules/gauge-ts/dist/connection/GaugeConnection.js:6:20)
at Module._compile (internal/modules/cjs/loader.js:959:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
at Module.load (internal/modules/cjs/loader.js:815:32)
at Function.Module._load (internal/modules/cjs/loader.js:727:14)
at Module.require (internal/modules/cjs/loader.js:852:19)
gauge -vError ----------------------------------
[Gauge]
Failed to start gauge API: Timed out connecting to 127.0.0.1:39227
Get Support ----------------------------
Docs: https://docs.gauge.org
Bugs: https://github.com/getgauge/gauge/issues
Chat: https://spectrum.chat/gauge
Your Environment Information -----------
linux, 1.0.7, ed7b4fd6
html-report (4.0.9), js (2.3.8), screenshot (0.0.1), ts (0.0.5)
Just switched to my Mac and was able to reproduce, here it is a fresh install of Gauge:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.3
BuildVersion: 19D76
node -v
v12.13.0
npm -v
6.12.0
gauge -v
Gauge version: 1.0.7
Commit Hash: ed7b4fd6
Plugins
html-report (4.0.9)
js (2.3.8)
screenshot (0.0.1)
ts (0.0.5)
npm i -g @getgauge/cli
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
/Users/vowe/.nvm/versions/node/v12.13.0/bin/gauge -> /Users/vowe/.nvm/versions/node/v12.13.0/lib/node_modules/@getgauge/cli/bin/gauge
@getgauge/cli@1.0.7 install /Users/vowe/.nvm/versions/node/v12.13.0/lib/node_modules/@getgauge/cli
node ./src/index.js
Fetching download url for Gauge version 1.0.7
Downloading https://github.com/getgauge/gauge/releases/download/v1.0.7/gauge-1.0.7-darwin.x86_64.zip to ./bin
- @getgauge/cli@1.0.7
added 82 packages from 75 contributors in 31.682s
gauge install js
gauge i...n....sta...
[grpc] Success: "/private/var/folders/lx/642lfljs6zv9q3gnhf2vpktc0000gn/T/gauge_temp1583939475692132000/node_modules/grpc/src/node/extension_binary/node-v72-darwin-x64-unknown/grpc_node.node" is installed via remote
Attention
Console-stamp version 3.0.0 Release Candidate is out. Install by using the tag '@next'. NB: Breaking changes.
For more details goto: https://www.npmjs.com/package/console-stamp/v/next
added 172 packages from 164 contributors and audited 886 packages in 4.289s
gauge init ts
Downloading ts.zip
.
Copying Gauge template ts to current directory ...
grpc@1.24.2 install /Users/vowe/workspace/experiments/test-gauge-ts/node_modules/grpc
node-pre-gyp install --fallback-to-build --library=static_library
node-pre-gyp WARN Using needle for node-pre-gyp https download
[grpc] Success: "/Users/vowe/workspace/experiments/test-gauge-ts/node_modules/grpc/src/node/extension_binary/node-v72-darwin-x64-unknown/grpc_node.node" is installed via remote
protobufjs@6.8.8 postinstall /Users/vowe/workspace/experiments/test-gauge-ts/node_modules/protobufjs
node scripts/postinstall
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN gauge-ts-template@0.0.1 No repository field.
npm WARN gauge-ts-template@0.0.1 No license field.
added 122 packages from 138 contributors and audited 201 packages in 15.931s
found 0 vulnerabilities
Successfully initialized the project. Run specifications with "gauge run specs/".
gauge run specs/
internal/modules/cjs/loader.js:797
throw err;
^
Error: Cannot find module '../gen/messages'
Require stack:
- /Users/vowe/workspace/experiments/test-gauge-ts/node_modules/gauge-ts/dist/connection/GaugeConnection.js
- /Users/vowe/workspace/experiments/test-gauge-ts/node_modules/gauge-ts/dist/connection/GaugeListener.js
- /Users/vowe/workspace/experiments/test-gauge-ts/node_modules/gauge-ts/dist/GaugeRuntime.js
- /Users/vowe/workspace/experiments/test-gauge-ts/[eval].ts
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/Users/vowe/workspace/experiments/test-gauge-ts/node_modules/gauge-ts/dist/connection/GaugeConnection.js:6:20)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Module.require (internal/modules/cjs/loader.js:849:19)
@nuclearglow Thanks for reporting the issue. Seems like the latest release didn't happen properly. I will look into it soon. Meanwhile, you can continue with the old version.
Can you check what version of gauge-ts is specified in your package.json
? Can you try making that 0.0.5
and running npm install
and then running the tests again?
Sure, good one, now it worked, I guess, at least on Mac:
package.json
:
"dependencies": {
"gauge-ts": "0.0.5"
},
gauge run specs/
Specification Heading
Vowel counts in single word ✔ ✔
Vowel counts in multiple word ✔ ✔
Successfully generated html-report to => /Users/vowe/workspace/experiments/test-gauge-ts/reports/html-report/index.html
Specifications: 1 executed 1 passed 0 failed 0 skipped
Scenarios: 2 executed 2 passed 0 failed 0 skipped
Total time taken: 500ms
@BugDiver just switched to Ubuntu, the fix is also working there! Great, thanks for your quick help, it seems the gauge-ts template was not updated to reflect the 0.0.5 change in package.json
.
@nuclearglow Thanks for confirming.
This tells me that sometimes there can be a mismatch between gauge-ts
plugin (it includes starter script )and the gauge-ts (it includes all typescript related code) npm library and that can cause an issue.
So I was thinking of adding a check in the starter script to make sure the gauge-ts version in projects matches it. We can do one of the two
- If there is a mismatch it can error out suggesting to fix the version
- If there is a mismatch it can try to upgrade the version in the project informing the user
I prefer 2. What do you say?
Do you mean launcher.js (https://github.com/BugDiver/gauge-ts/blob/master/launcher.js#L3)?
It seems the version is derived from ts.json
?
I have two ideas here (but only had a short look):
- When you release, you could bump up both versions, in ts.json and package.json at the same time.that could help avoid mismatches
- When launcher.js starts, it should definitely check the output from
gauge -v
and check the ts version (is there a way to get a plugin version directly?) and also check the dependency in ts.json. I guess if the gauge version is lower, agauge update ts
could do the trick, otherwise apackage.json
update can be done in your template
So yes, I guess version 2 could work fine...