Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resolve "The cypress npm package is installed, but the Cypress binary is missing."

I'm trying to download and install Cypress within GitLab CI runner and getting this error output:

The cypress npm package is installed, but the Cypress binary is missing.
We expected the binary to be installed here: /root/.cache/Cypress/4.8.0/Cypress/Cypress
Reasons it may be missing:
- You're caching 'node_modules' but are not caching this path: /root/.cache/Cypress
- You ran 'npm install' at an earlier build step but did not persist: /root/.cache/Cypress
Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.
Alternatively, you can run 'cypress install' to download the binary again.

I ran the suggested command cypress install but it didn't help. Next it says You're caching 'node_modules' but are not caching this path: /root/.cache/Cypress I don't understand how you can cache the modules and leave out the path to it. Next is You ran 'npm install' at an earlier build step but did not persist I did have npm install in earlier builds so I replaced it with npm ci as it's recommended in Cypress official docs in such cases.

No resolution though.

Here are relevant lines where the error occurs:

inside of Dockerfile:

COPY package.json /usr/src/app/package.json
COPY package-lock.json /usr/src/app/package-lock.json
RUN npm ci

inside the test runner:

docker-compose -f docker-compose-prod.yml up -d --build
./node_modules/.bin/cypress run --config baseUrl=http://localhost

inside the package.json:

{
  "name": "flask-on-docker",
  "dependencies": {
    "cypress": "^4.8.0"
  }
}

Can anyone point me in a right direction ?

like image 441
road_runner Avatar asked Jun 11 '20 07:06

road_runner


People also ask

Where is Cypress binary installed?

Binary cache Linux: ~/. cache/Cypress. Windows: /AppData/Local/Cypress/Cache.

How do you check Cypress is installed or not?

Use Git-Bash/Cmd, type "npx cypress --version". It will give Cypress package version, Cypress binary version, Electron and Bundled Node version also. Typing "./node_modules/. bin/cypress version" in cmd prompt will also give the same details.

Is Cypress an npm package?

Cypress comes packaged as an npm module, which is all you need to get started testing. After installing you'll be able to: Open Cypress from the CLI.


2 Answers

You probably are running npm install and cypress run in two different stages. In this case, cypress cache could not be persisted, So it is recommended to use CYPRESS_CACHE_FOLDER option while running install and as well as cypress run/open. The command will looks like this,

CYPRESS_CACHE_FOLDER=./tmp/Cypress yarn install

CYPRESS_CACHE_FOLDER=./tmp/Cypress npx cy run [--params]
like image 170
Suresh Avatar answered Sep 19 '22 21:09

Suresh


This helped me (Windows):

.\node_modules\.bin\cypress.cmd install --force

Or if you're using a UNIX system:

./node_modules/.bin/cypress install --force

https://newbedev.com/the-cypress-npm-package-is-installed-but-the-cypress-binary-is-missing-591-code-example

like image 30
Nazar Zavada Avatar answered Sep 19 '22 21:09

Nazar Zavada