@nx/cypress:cypress-project
Create Cypress Configuration for the workspace.
The State of JS survey is live, featuring a monorepo tools sectionThe State of JS survey is live, featuring a monorepo tools sectionVote for us
Please do not extend this schema as it is part of Nx internal usage.
Create Cypress Configuration for the workspace.
Adding Cypress to an existing application requires two options. The name of the e2e app to create and what project that e2e app is for.
1nx g configuration --name=my-app-e2e --project=my-app
2When providing --project option, the generator will look for the serve target in that given project. This allows the cypress executor to spin up the project and start the cypress runner.
If you prefer to not have the project served automatically, you can provide a --base-url argument in place of --project
1nx g configuration --name=my-app-e2e --base-url=http://localhost:1234
2You can also run the configuration generator against API projects like a Nest API. If there is a URL to visit then you can test it with Cypress!
Now, you can generate your Cypress project with Vite.js as the bundler:
1nx g configuration --name=my-app-e2e --project=my-app --bundler=vite
2This generator will pass the bundler information (bundler: 'vite') to our nxE2EPreset, in your project's cypress.config.ts file (eg. my-app-e2e/cypress.config.ts).
The nxE2EPreset will then use the bundler information to generate the correct settings for your Cypress project to use Vite.js. In the background, the way this works is that it's using a custom Vite preprocessor for your files, that's called on the file:preprocessor event. If you want to customize this behaviour, you can do so like this in your project's cypress.config.ts file:
1import { defineConfig } from 'cypress';
2import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset';
3
4const config = nxE2EPreset(__filename, { bundler: 'vite' });
5export default defineConfig({
6 e2e: {
7 ...config,
8 setupNodeEvents(on, config): {
9 config.setupNodeEvents(on);
10 // Your settings here
11 }
12 },
13});
141nx generate cypress-project ...
2By default, Nx will search for cypress-project in the default collection provisioned in workspace.json.
You can specify the collection explicitly as follows:
1nx g @nx/cypress:cypress-project ...
2Show what will be generated without writing to disk:
1nx g cypress-project ... --dry-run
2Name of the E2E Project.
A directory where the project is placed.
The name of the frontend project to test.
The address (with the port) which your application is running on.
webpackvite, webpack, noneThe Cypress bundler to use.
falseGenerate JavaScript files rather than TypeScript files.
eslinteslint, noneThe tool to use for running lint checks.
as-provided, derivedWhether to generate the project name and root directory as provided (as-provided) or generate them composing their values and taking the configured layout into account (derived).
falseWhether or not to configure the ESLint parserOptions.project option. We do not do this by default for lint performance reasons.
falseSkip formatting files.
falseDo not add dependencies to package.json.