J'utilise Jest comme cadre de test unitaire et ci-dessous intellisense est correct:
Cependant, lorsque j'installe Cypress "cypress": "^ 3.2.0"
, le même code affichant maintenant l'erreur La propriété 'toMatch' n'existe pas sur le type 'Assertion'. Vouliez-vous dire "match"?
. La raison de cet IMO est que les typages d'installation de Cypress sont sous node_modules / cypress / types / chai / index.d.ts
et VS Code les sélectionne pour intellisense. Jest et Cypress dépendent tous deux de la bibliothèque d'assertions Chai. Intellisense après l'installation de Cypress:
Existe-t-il un moyen de dire à VS Code quel Chai intellisense utiliser dans un dossier spécifique? Ou y a-t-il un moyen de le spécifier dans le fichier jsconfig.json
?
3 Réponses :
La solution consistait à créer des alias pour les variables globales exposées dans Jest
et décorez ces variables avec @type
dans JSDoc. J'ai donc créé un fichier jestGlobals.js
dans le même répertoire où se trouvent mes tests.
Fichier jestGlobals.js
: (j'ai inclus un seul global par souci de simplicité, mais vous feriez la même chose pour toutes les variables globales):
import { expect } from './jestGlobals'
Je suis moi aussi confronté à ce problème.
Habituellement, je peux taper les affirmations par cœur, mais lorsque vous avez vraiment besoin de la saisie semi-automatique, ajoutez
/// <reference types="jest" />
(A directive triple-slash ) En haut de votre le fichier de la suite de tests vous donnera les bons types de plaisanterie.
Remarque: vous devez avoir @ types / jest
également installé!
p >
Je vais modifier le commentaire. Vous devez également avoir @ types / jest
installé!
J'ai eu le même problème avec cypress et jest.
Je l'ai résolu en créant deux jsconfig.json
cypress / jsconfig.json
{ "typeAcquisition": { "include": ["jest"] } }
puis un pour mon dossier src
src / jsconfig.json
{ "typeAcquisition": { "include": ["cypress"] } }
J'ai redémarré VSCode et cela a fonctionné comme prévu