Utilisation des variables .env dans package.json : un guide étape par étape
P粉798343415
P粉798343415 2024-03-25 22:08:51
0
2
462

J'utilise Cypress pour exécuter des tests sur mon projet VueJS.

Je voulais juste lancer le test avec le navigateur que je voulais, alors j'ai créé un .env comme ci-dessous

BROWSER=edge

Dans le fichier package.json, j'ai écrit la commande suivante :

"scripts":{
      "cy:run" : "cypress run --browser %BROWSER%"
}

Je sais que je peux saisir des commandes comme celle-ci

"cy:run" : "cypress run --browser edge"

Mais la raison pour laquelle j'ai créé le fichier .env est qu'une fois le test terminé, je souhaite enregistrer les résultats du test avec le nom du navigateur. Ainsi, lorsque je change de navigateur dans le .env, j'exécute simplement la commande npm.

Mais ça n’a pas fonctionné. Cypress ne parvient pas à détecter le navigateur souhaité. J'ai essayé de nombreuses méthodes, dont celle-ci.

Quelqu'un peut-il me dire comment le faire fonctionner ? Merci beaucoup.

J'ai essayé d'utiliser un navigateur spécifique et une fois le test terminé, les résultats du test ont été enregistrés sous le nom que je voulais, ce qui signifie que le NAVIGATEUR dans le fichier .env a fonctionné.

P粉798343415
P粉798343415

répondre à tous(2)
P粉950128819

L'option "Navigateur" complète nécessite deux tirets

"scripts":{
  "cy:run" : "cypress run --browser %BROWSER%"
}

Ou utilisez un tiret pour représenter le raccourci "-b"

"scripts":{
  "cy:run" : "cypress run -b %BROWSER%"
}
P粉497463473

J'ai résolu ce problème en utilisant cross-env

Tout d'abord, j'utilise npm i cross-env 安装 cross-env

Dans mon package.json, je l'ai modifié comme ça

"scripts":{
   "run:env" : "cross-env BROWSER=\"edge\" npm run cy:run"
   "cy:run" : "cross-env-shell cypress run --browser=$BROWSER"
 }

Puis je cours npm run run:env

Tout fonctionne bien maintenant.

Même si je supprime le fichier .env, process.env.BROWSER est toujours disponible

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal