web-dev-qa-db-fra.com

Comment puis-je obtenir Cypress pour exécuter un dossier spécifique des tests en le spécifiant en tant que projet?

J'ai la structure de répertoire suivante pour travailler avec 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

Attente

Ce que je veux faire, c'est courir tous les tests à l'intérieur de l'smhw-qa Dossier (il existe un certain nombre de fichiers spécifiques dedans) .. et être capable de passer cela à l'aide de l'utilisation de --project commande à l'aide de CLI.

Actuellement si je viens d'exécuter `--Run`` sans aucun autre argument, tous les fichiers de spécifications, de tous les dossiers commenceront à exécuter, ce qui n'est pas souhaitable, car il existe plusieurs applications" Projets "(SMHW-QA, SMHW-PROD, etc.) dans cette structure. Cela me permettra de gérer uniquement les fichiers de spécifications à partir d'un seul dossier au besoin.

Je suis également au courant de l'utilisation de l'--run Commande à "Exécuter" un dossier spécifique, mais je veux utiliser des "projets" pour organiser ces tests afin qu'il soit plus facile de les identifier plus tard.

J'ai examiné les docs qui montrent l'utilisation de la --project Commande Toutefois, je dois aider à comprendre ce que j'ai besoin d'être configuré pour pouvoir faire ce travail. À ce sujet, je parle de la package.json fichier.

Ce que j'ai essayé jusqu'à présent
[.____] J'ai essayé de suivre l'exemple fourni pour tester les "dossiers imbriqués" d'ici: https://github.com/cress-io/cress-test-neté-projects

package.json: Ajout du script suivant:

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "smhw-qa": "cypress run --project ./cypress/integration/apps/smhw-qa"
  },

Quand j'exécute ceci via le terminal comme si:

➜  cypress-automation npx cypress run --project ./cypress/integration/apps/smhw-qa

Je reçois une erreur:

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

Est-ce que je manque quelque chose? Si mon cypress.json Dossier être situé ailleurs?

J'aimerais pouvoir définir chacun des dossiers dans des "applications" pour être des projets, puis pour pouvoir exécuter ces projets à l'aide de la cypress run --project commande.

Cela facilitera également la gestion des dossiers de tests spécifiques lorsque je connecte notre CI afin que seuls des projets spécifiques (et leurs fichiers spécifiques) fonctionnent lorsque je choisis.

12
Jas

Je pense que vous cherchez --spec path/to/folder/*.js

Vous pouvez exécuter tous les tests dans un dossier ou même dans tous les sous-dossiers d'un dossier,

ex/ npx cypress run --spec cypresss/integration/subsetA/**/*-spec.js

exécuterait toutes les spécifications .js dans tous les dossiers dans le dossier "Subeseta" de cyprès/intégration.

Donc, dans votre cas: npx cypress run --spec cypress/integration/apps/smhw-qa/**/*-spec.js devrait faire l'affaire.

https://docs.cypress.io/guides/guides/command-line.html#how-a-run-commands

3
jnotelddim