I have the following directory structure for working with Cypress:
cypress-automation cypress fixtures integration apps pulse smhw-prod smhw-qa folder-a sample-spec.js examples plugins screenshots support videos node_modules cypress.json // this is where the file currently is package-lock.json package.json
Expectation
What I want to do is run all the tests inside the smhw-qa
folder (there are a number of spec files in there) .. and be able to pass this using the --project
command using CLI.
Currently if I just run `--run`` without any other arguments all the spec files, from all folders will start to run which is not desirable, since there are multiple applications "projects" (smhw-qa, smhw-prod etc) within this structure. This will allow me to only run the spec files from a single folder as desired.
I am also aware of using the --run
command to "run" a specific folder, but I want to use "projects" instead to organise these tests so it's easier to identify them later.
I have had a look at the docs which show the use of the --project
command however I need to help to understand what else I need to setup in order to make this work. By this, I am referring to the package.json
file.
What I tried so far
I tried to follow the example provided for testing "nested folders" from here: https://github.com/cypress-io/cypress-test-nested-projects
package.json
: added the following script:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "smhw-qa": "cypress run --project ./cypress/integration/apps/smhw-qa" },
When I run this via the terminal like so:
➜ cypress-automation npx cypress run --project ./cypress/integration/apps/smhw-qa
I get an error:
Can't run because no spec files were found. We searched for any files inside of this folder: /Users/jaswindersingh/Documents/cypress-automation/cypress/integration/apps/smhw-qa/cypress/integration
Am I missing something? Should my cypress.json
file be located elsewhere?
I'd like to be able to set each of the folders inside "apps" to be projects, and then be able to run these projects using the cypress run --project
command.
This will also make it easier to run specific folders of tests when I hookup our CI so that only specific projects (and their spec files) run when I choose.
Cypress provides two ways to test cases. Either using the Cypress UI Test Runner or from the CLI using the "cypress run" command. A specific test case can be executed on the CLI using the "--spec" option. We can change the browser for a specific test run on CLI using the "--browser" option.
Test files are located in cypress/e2e by default, but can be configured to another directory. Test files may be written as: . js.
I think you're looking for --spec path/to/folder/*.js
You can run all the tests in a folder, or even in all subfolders of a folder,
ex/ npx cypress run --spec cypress/integration/subsetA/**/*-spec.js
would run all .js specs in all folders under the "subsetA" folder in cypress/integration.
So in your case: npx cypress run --spec cypress/integration/apps/smhw-qa/**/*-spec.js
should do the trick.
https://docs.cypress.io/guides/guides/command-line.html#How-to-run-commands
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With