cypress-cli-select

1.1.2 • Public • Published

Cypress cli-select

Cypress interactive cli prompts to select and run specs, tests or tags.

Cypress-cli-select title demo

Features

  • ⌨ New interactive CLI prompts to select and run specs, tests or tags
  • 👟 A new cypress run command to allow user to pass desired arguments

Table of Contents


Installation

  1. Install the following package:
npm install --save-dev cypress-cli-select

bahmutov cy-grep

In order to run specific tests by their title or tag, install the following plugin:

npm install --save-dev @bahmutov/cy-grep

Follow the installation and setup for @bahmutov/cy-grep in the project README

cypress grep package

If you use @cypress/grep, you can use this package for specs or tag selection, but this package uses functionality not currently supported by @cypress/grep to allow for other uses.


Run mode

If you want to select e2e specs to run, simply run the following command:

npx cypress-cli-select run

For selecting component specs:

npx cypress-cli-select run --component

If you want to skip straight to selecting specs, titles or tags:

npx cypress-cli-select run --specs
# skips straight to spec selection
npx cypress-cli-select run --titles
# skips to test title selection
npx cypress-cli-select run --tags
# skips to tag selection
npx cypress-cli-select run --specs --tags
# skips to spec selection, followed by tag selection
npx cypress-cli-select run --specs --titles
# skips to spec selection, followed by title selection

Note: You cannot pass both the --titles and --tags arguments.

You can also include more cli arguments similar to cypress run, as the command harnesses the power of Cypress module API:

# Example
npx cypress-cli-select run --component --browser=chrome

Keyboard controls

Keys Action
Up Move to selection above current
Down Move to selection below current
Tab Select current
Ctrl + a Select all
Backspace Remove selection
Enter Proceed
Ctrl + c Exit

Note: You can also filter choices displayed in list by typing


Test titles or tags

If @bahmutov/cy-grep package is installed in your project, test titles and tags are available to select.

Cypress-cli-select tag demo


Help mode

To open the cli help menu, pass the --help flag:

npx cypress-cli-select run --help

Cypress-cli-select help menu demo


Choose spec pattern

If you are interested in running selected specs in a specific order, pass the following flag:

npx cypress-cli-select run --choose-spec-pattern

Note: If you pass --choose-spec-pattern you will not have the choice to run test titles or tags.

Keyboard controls

Keys Action
Up Move to selection above current
Down Move to selection below current
Shift + Reorder current up
Shift + Reorder current down
Enter Confirm order

Cypress-cli-select choose-spec-pattern demo


Print selected

If you want to print all selected specs, tests or tags just prior to Cypress run, pass the following flag:

npx cypress-cli-select run --print-selected

Cypress cli select --print-selected


Submit focused

When no other options are already selected, automatically select the currently focused option with Enter.

To enable this feature, pass the following flag:

npx cypress-cli-select run --submit-focused

Using a custom cypress config

If you want to use a custom Cypress config, pass it via --config-file flag:

npx cypress-cli-select run --config-file tests/cypress.config.js

Setting up a npm script

For convenience, you may desire to house the npx command within an npm script in your project's package.json, including any desired cli arguments:

  "scripts": {
    "cy:select": "npx cypress-cli-select run --browser=firefox"
  }

Typescript support

For more information on Typescript support involved with @bahmutov/cy-grep package, refer to it's README.


Contributions

Feel free to open a pull request or drop any feature request or bug in the issues.

Please see more details in the contributing doc.

Package Sidebar

Install

npm i cypress-cli-select

Weekly Downloads

350

Version

1.1.2

License

MIT

Unpacked Size

785 kB

Total Files

40

Last publish

Collaborators

  • dbergevin