Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@cypress/schematic

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cypress/schematic

Official Cypress schematic for the Angular CLI

  • 2.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
75K
decreased by-19.83%
Maintainers
1
Weekly downloads
 
Created
Source

Cypress Angular Schematic

🔖 Official Angular Schematic and Builder for the Angular CLI.
This project is maintained by the Cypress Team.

Cypress Logo

Add this schematic to quickly get up and running with Cypress in your Angular project.


What does this schematic do?

Once added to your project, it will:

✅ Install Cypress

✅ Add npm scripts for running Cypress in run mode and open mode

✅ Scaffold base Cypress files and directories

✅ Provide the ability to add new e2e files easily using ng-generate

✅ Optional: prompt you to add or update the default ng e2e command to use Cypress.

Requirements

  • Angular 12+

Usage ⏯

Install the schematic:

ng add @cypress/schematic

To run Cypress in open mode within your project:

ng run {project-name}:cypress-open

To run Cypress headlessly via run mode within your project:

ng run {project-name}:cypress-run

If you have chosen to add or update the ng e2e command, you can also run Cypress in open mode using this:

ng e2e

To generate new e2e spec files:

ng generate @cypress/schematic:e2e

Builder Options 🛠

Running the builder with a specific browser

Before running Cypress in open mode, ensure that you have started your application server using ng serve.

"cypress-open": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "watch": true,
    "headless": false,
    "browser": "chrome"
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:serve:production"
    }
  }
}

Read our docs to learn more about launching browsers with Cypress.

Recording test results to the Cypress Dashboard

We recommend setting your Cypress Dashboard recording key as an environment variable and NOT as a builder option when running it in CI.

"cypress-run": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "devServerTarget": "{project-name}:serve",
    "record": true,
    "key": "your-cypress-dashboard-recording-key"
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:production"
    }
  }
}

Read our docs to learn more about recording test results to the Cypress Dashboard.

Specifying a custom cypress.json config file

It may be useful to have different Cypress configuration files per environment (ie. development, staging, production).

"cypress-run": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "devServerTarget": "{project-name}:serve",
    "configFile": "cypress.production.json"
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:production"
    }
  }
}

Read our docs to learn more about all the configuration options Cypress offers.

Running Cypress in parallel mode within CI

"cypress-run": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "devServerTarget": "{project-name}:serve",
    "parallel": true,
    "record": true,
    "key": "your-cypress-dashboard-recording-key"
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:production"
    }
  }
}

Read our docs to learn more about speeding up test execution in CI via Cypress parallelization

Specifying a custom reporter and options

You may want to specify a custom reporter. Cypress works with any reporters built for Mocha: built-in, third-party, or custom. In addition to specifying reporters, you can specify reporter options. These differ based on the reporter, and you should refer to its documentation for supported options.

"cypress-run": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "devServerTarget": "{project-name}:serve",
    "reporter": "junit",
    "reporterOptions": {
      "mochaFile": "results/my-test-output.xml",
      "toConsole": true
    }
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:production"
    }
  }
}

Read our docs to learn more about working with reporters.

Running the builder with a different baseUrl

You can specify a baseUrl that is different than the one in cypress.json. There are two ways to do this.

  1. Add baseUrl to configurations like the following:
"cypress-open": {
  "builder": "@cypress/schematic:cypress",
  "options": {
    "devServerTarget": "{project-name}:serve",
    "watch": true,
    "headless": false
  },
  "configurations": {
    "production": {
      "devServerTarget": "{project-name}:serve:production"
    },
    "local-dev": {
      "devServerTarget": "{project-name}:serve:development",
      "baseUrl": "http://localhost:4002"
    },
    "another-env": {
      "devServerTarget": "{project-name}:serve:development",
      "baseUrl": "http://localhost:4004"
    }
  }
}
  1. Add custom options to devServerTarget in angular.json:
"options": {
  "host": "localhost",
  "port": 4200
},

In order to prevent the application from building, add the following to the end of your command:

--dev-server-target=''

Generator Options

Specify Filename (bypassing CLI prompt)

In order to bypass the prompt asking for your e2e spec name, simply add a --name= flag like this:

ng generate @cypress/schematic:e2e --name=login

This will create a new spec file named login.cy.ts in the default Cypress folder location.

Specify Project

Add a --project= flag to specify the project:

ng generate @cypress/schematic:e2e --name=login --project=sandbox

Specify Path

Add a --path= flag to specify the project:

ng generate @cypress/schematic:e2e --name=login --path=src/app/tests

This will create the e2e spec file in your specific location, creating folders as needed.

Migrating from Protractor to Cypress?

Read our migration guide to help you make the transition from Protractor to Cypress.

Questions or Issues?

Visit our plugins discussion to ask questions or report issues related to this package.

License

This project is licensed under an MIT license.

Community Recognition

The Cypress Angular Schematic package was made possible by the original work of the Briebug team and the contributors of @briebug/cypress-schematic.

@briebug/cypress-schematic served as the starting point for improvements and new functionality the Cypress team will continue to develop along with the community.

Keywords

FAQs

Package last updated on 17 Aug 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc