Opérationnel avec Cypress et Typescript

Donc les choses n’explosent pas au hasard lorsque vous lancez vos tests…

Quand j’ai vu Cypress pour la première fois , j’en ai été presque immédiatement amoureux. Cypress vous permet d'écrire (pas seulement) des tests d'intégration - vous savez, ces tests qui contrôlent le navigateur et cliquent dans votre application de navigateur pour agir comme un véritable utilisateur. Cypress possède de nombreuses fonctionnalités attrayantes qui devraient faciliter l'écriture des tests d'intégration par rapport à l'utilisation de Protractor et Selenium . Je vous laisse les vérifier par vous-même et vous amuser dans la documentation .

Quoi qu'il en soit, le seul vrai problème que j'ai rencontré lorsque j'ai commencé à écrire les tests est que vous ne pouvez pas utiliser Typescript . J'utilise Typescript depuis plus d'un an maintenant et je me suis habitué à la vérification de type et à la saisie semi-automatique que vous n'obtenez pas lorsque vous utilisez du Javascript simple. Ainsi, lorsque j'écrivais les premiers tests avec Cypress, j'avais ce sentiment étrange d'incertitude que quelque chose pourrait exploser lorsque je les exécuterais.

Récemment, j'ai découvert les typages Cypress et j'ai réussi à rendre les tests opérationnels avec Typescript. Ce court article concerne la configuration que j'utilise maintenant pour les tests.

Obtenir les saisies

Avant de pouvoir commencer à écrire vos tests dans Typescript, vous devez d'abord installer les saisies. Cypress regroupe de nombreux outils , donc si vous souhaitez les utiliser, vous devez également installer les saisies correspondantes.

yarn add @types/{cypress,chai,chai-jquery}

☝️ Depuis la version 1.1.3 de Cypress, les typages Cypress sont fournis par défaut avec la bibliothèque, il n'est donc pas nécessaire d'en ajouter @types/cypressséparément.

Configuration de la construction

Cypress ne prend pas encore en charge les fichiers Typescript, nous devons donc configurer un système de construction simple pour créer les fichiers de test et laisser Cypress exécuter les fichiers Javascript résultants. Vous pouvez utiliser une solution plus complexe comme Webpack ou Gulp , mais j'ai opté pour une solution très simple consistant simplement à utiliser le compilateur Typescript appelé tscqui est installé lorsque vous installez Typescript. Alors allez-y et faites-le maintenant.

yarn add typescript

tsc --watch --project test/tsconfig.json

Vous spécifiez les fichiers à compiler à l'aide des includeoptions et la sortie à l'aide de l' compilerOptions.outDiroption. Notez que j'ai désactivé les fichiers de carte source et c'est parce que Cypress essaierait également de les exécuter en tant que tests.

Configuration du cyprès

D'accord. Vos fichiers de test sont maintenant en cours de compilation. La dernière chose à faire est de dire à Cypress où les chercher. Pour ce faire, vous devez modifier le cypress.jsonfichier de configuration :

Vous transmettez le chemin vers les tests compilés en utilisant l' integrationFolderoption. Et voilà !

Emballer

Vous disposez désormais d’une configuration fonctionnelle pour compiler les tests et les exécuter à l’aide de Cypress. J'utilise des scripts NPM pour exécuter l'ensemble de la configuration et voici à quoi ils ressemblent. Il vous suffit d'installer une dépendance supplémentaire.

yarn add npm-run-all
    
      

Merci de lire cet article. Si vous l'aimez, assurez-vous de lui donner un et suivez-moi pour d'autres cadeaux géniaux. Passe une bonne journée!

Suggested posts

Détection de périphérique client dans Next.js 13

Détection de périphérique client dans Next.js 13

Parfois, vous devrez peut-être savoir où votre application Web est exécutée et quel type d'appareil est utilisé pour cela. C'est un pc ? est-ce un appareil mobile ? et même, s'il s'agit d'un mobile, quel système d'exploitation est utilisé pour cela afin que vous puissiez ajuster les vues et rendre votre application plus réactive ou éliminer certaines fonctionnalités qui ne fonctionneront pas sur cet appareil ou l'autre.

forEach/map et async ne vont pas de pair

forEach/map et async ne vont pas de pair

Parfois, nous avons souvent tendance à passer des fonctions asynchrones avec les fonctions forEach et map. Par exemple : résultat : tous les nombres à partir de 1.

Related posts

3 façons éprouvées d'améliorer vos compétences en écriture

Les avantages de l'écriture et les stratégies pour vous aider à le faire

3 façons éprouvées d'améliorer vos compétences en écriture

En 2022, avec la sortie de GPT-3, la compétence en écriture semble devenir moins importante. Avec l'IA, les personnes ayant une mauvaise écriture peuvent également générer du personnel de qualité.

Learning at Work Week compte plus que vous ne le pensez

Learning at Work Week compte plus que vous ne le pensez

Nous avons souvent du mal à mettre en œuvre ce que nous savons être bon pour nous. Qu'il s'agisse de dire à un proche que nous l'aimons ou de se rappeler de parler comme un pirate, il y aura toujours ceux qui prétendent qu'un jour, une semaine ou un mois d'événements ne sont pas nécessaires parce qu'ils font déjà ces choses.

Rassembler OSINT pour la chasse aux menaces

Rassembler OSINT pour la chasse aux menaces

Salut les cyber-amateurs ! Bienvenue à nouveau dans la série OSINT pour la chasse aux menaces. Dans le premier article, je vous ai donné un aperçu d'OSINT et de son importance dans la chasse aux menaces.

Créer un environnement de travail sûr

Créer un environnement de travail sûr

« Il me protégera quand je serai en danger. Il me cachera dans sa tente.