cypress-io / cypress-example-kitchensink

This is an example app used to showcase Cypress.io testing.

Home Page:https://example.cypress.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cypress AWS codebuild error: spec must be a string or comma-separated list

tcetin opened this issue · comments

I am trying to run tests parallelly in AWS. I created the configuration file like this real app build spec file.

So my cypress command gives this error:

Opening Cypress...
Cypress encountered an error while parsing the argument: --spec

You passed: true

The error was: spec must be a string or comma-separated list

My problem is the environments that I use during the cypress command are getting as empty.

  - echo $CY_GROUP_SPEC
  - CY_GROUP=$(echo $CY_GROUP_SPEC | cut -d'|' -f1)
  - CY_BROWSER=$(echo $CY_GROUP_SPEC | cut -d'|' -f2)
  - CY_SPEC=$(echo $CY_GROUP_SPEC | cut -d'|' -f3)
  - CY_CONFIG=$(echo $CY_GROUP_SPEC | cut -d'|' -f4)

I use this command to run cypress:

  • NO_COLOR=1 ./node_modules/.bin/cypress run --browser $CY_BROWSER --spec "$CY_SPEC" --config "$CY_CONFIG" --headless. --record --key $CYPRESS_KEY --parallel --ci-build-id $CODEBUILD_INITIATOR --group "$CY_GROUP"

I defined these env variables like this on the top of the file:

batch:
  build-matrix:
      dynamic:
        env:
          image:
              - ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/cypress:latest
          variables:
            CY_GROUP_SPEC:
              - "UI - Chrome|chrome|cypress/e2e/account/*"
              - "UI - Chrome|chrome|cypress/e2e/auth/*"
              - "UI - Chrome|chrome|cypress/e2e/mastering/*"
              - "UI - Chrome|chrome|cypress/e2e/pages/**/*"
              - "UI - Chrome|chrome|cypress/e2e/user-flows/**/*"
            WORKERS:
              - 1
              - 2
              - 3
              - 4
              - 5

I use Cypress 10.3.0 version.

So basically, the configuration is the same with this example build spec file.

How can I solve this issue?