NativeScript - Test

Les tests sont une phase très importante du cycle de vie de développement d'une application. Il garantit une qualité d'application. Il nécessite une planification et une exécution minutieuses. C'est également la phase de développement qui prend le plus de temps. Le framework NativeScript fournit un support étendu pour le test automatisé d'une application.

Types de tests

En règle générale, trois types de processus de test sont disponibles pour tester une application. Ils sont les suivants -

Test unitaire

Le test unitaire est la méthode la plus simple pour tester une application. Elle repose sur la vérification de l'exactitude d'un morceau de code (une fonction, en général) ou d'une méthode d'une classe. Mais, cela ne reflète pas l'environnement réel et par la suite. C'est la moindre des options pour trouver les bogues.

Généralement, NativeScript utilise Jasmine, Mocha avec les frameworks de tests unitaires Chai et QUnit.

Pour ce faire, vous devez d'abord configurer dans votre projet à l'aide de la commande ci-dessous -

tns test init

Maintenant, vous obtenez la réponse suivante -

? Select testing framework: (Use arrow keys) 
> jasmine 
   mocha 
   qunit

Maintenant, sélectionnez jasmine cadre et votre écran ressemble à ceci -

? Select testing framework: jasmine 
+ [email protected] 
added 90 packages from 432 contributors and audited 11944 packages in 8.753s 

+ [email protected] 
added 2 packages from 1 contributor and audited 11946 packages in 7.299s 

> [email protected] postinstall 
/Users/workspace/NativeScript/NativeApp/node_modules/core-js 

> node -e "try{require('./postinstall')}catch(e){}" 
Thank you for using core-js ( https://github.com/zloirock/core-js ) for 
polyfilling JavaScript standard library! 
The project needs your help! Please consider supporting of core-js on Open 
Collective or Patreon:

> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 
Also, the author of core-js ( https://github.com/zloirock ) is looking for a 
good job -) 
npm WARN [email protected] requires a peer of [email protected]^2.0.0 
|| ^3.0.0 but none is installed. You must install peer dependencies yourself. 

+ [email protected] 
added 19 packages from 52 contributors and audited 12012 packages in 9.368s 

+ [email protected] 
added 2 packages from 35 contributors and audited 12014 packages in 6.925s 

+ [email protected] 
updated 1 package and audited 12014 packages in 7.328s 
+ @types/[email protected] 

> [email protected] postinstall /Users/deiva/workspace/NativeScript/NativeApp/node_modules/nativescript-unit
-test-runner 

> node postinstall.js 
+ [email protected] 

added 1 package from 1 contributor and audited 12032 packages in 7.14s 
Successfully installed plugin nativescript-unit-test-runner. 

Example test file created in src/tests 
Run your tests using the "$ tns test <platform>" command.

Maintenant, le fichier de test est créé dans src \ tests \ example.ts.

Créez vos tests

Ajoutons un simple test dans le fichier example.ts comme indiqué ci-dessous -

describe("NativeApp test:", function() { 
   it("Check counter.", function() { 
      expect(mainViewModel.createViewModel().counter).toEqual(10); 
   }); 
   it("Check message.", function () { 
      expect(mainViewModel.createViewModel().message).toBe("10 taps left"); 
   }); 
});

Ici,

Tout d'abord, vérifiez si le compteur est égal à 10 et vérifiez si le message est de 10 taps restants.

Exécutons le test à l'étape suivante.

Exécutez vos tests

Maintenant, exécutez le test sur un appareil connecté Android ou iOS à l'aide de la commande ci-dessous -

tns test android

Cela renverra le statut suivant -

? To continue, choose one of the following options: (Use arrow keys) 
> Configure for Cloud Builds 
   Configure for Local Builds 
   Configure for Both Local and Cloud Builds 
   Skip Step and Configure Manually

Ensuite, choisissez l'option ci-dessous -

? To continue, choose one of the following options: Configure for Local Builds 
Running the setup script to try and automatically configure your environment. 
These scripts require sudo permissions 
.....

Pour exécuter votre suite de tests dans le simulateur Android, exécutez la commande suivante -

tns test android --emulator

Désormais, le serveur karma prépare les builds et déploie votre projet.

Test de bout en bout (E2E)

Les tests unitaires sont des processus petits, simples et rapides, tandis que, lors de la phase de test E2E, plusieurs composants sont impliqués et fonctionnent ensemble pour couvrir les flux dans l'application. Cela n'a pas pu être réalisé par des tests unitaires et d'intégration.

NativeScript Appiumplugin est utilisé pour effectuer des tests d'automatisation E2E. Eh bien, Appium est un cadre de test open source pour les applications mobiles. Pour ajouter ce framework à votre projet, vous devez disposer de la dernière version de XCode ou du SDK Android supérieur à 25.3.0.

Installez Appium

Installons Appium globalement en utilisant le module npm -

npm install -g appium

Maintenant, vous pouvez voir la réponse suivante -

npm install -g appium 
/Users/.npm-global/bin/authorize-ios -> 
/Users/.npm-global/lib/node_modules/ appium/node_modules/.bin/authorize-ios 

> [email protected] install 
/Users/.npm-global/lib/node_modules/ appium/node_modules/appium-windows-driver

> node install-npm.js 
Not installing WinAppDriver since did not detect a Windows system 

> [email protected] postinstall /Users/.npm-
global/lib/node_modules/appium/node_modules/core-js 

> node -e "try{require('./postinstall')}catch(e){}" 
Thank you for using core-js ( https://github.com/zloirock/core-js ) for 
polyfilling JavaScript 
standard library! 
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 

> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 
Also, the author of core-js ( https://github.com/zloirock ) 
is looking for a good job -) 

> [email protected] postinstall/Users/.npm-
global/lib/node_modules/appium/node_modules 
/appium-chromedriver 

> node install-npm.js 
............................................ 
............................................. 
+ [email protected] 
added 671 packages from 487 contributors in 28.889s

Ajouter un plugin

Ajoutons nativescript-dev-appium plugin en tant que devDependency de votre projet en utilisant la commande ci-dessous -

$ npm install -D nativescript-dev-appium

Après avoir exécuté ceci, choisissez mocha framework et vous obtiendrez une réponse similaire à celle-ci -

> node ./postinstall.js 
? What kind of project do you use
? javascript ? Which testing framework do you prefer? mocha 
+ [email protected]

Désormais, les fichiers sont stockés dans votre dossier de projet.

Construisez votre appareil

Construisons un appareil Android en utilisant la commande ci-dessous -

tns build android

La commande ci-dessus exécutera les tests devraient spécifier les capacités ciblées. Si vous avez un appareil iOS, vous pouvez créer en utilisantiOS dispositif.

Exécuter le test

Maintenant, nous avons configuré l'appareil. Lançons notre test en utilisant la commande ci-dessous -

npm run e2e -- --runType <capability-name>

Ici,

Le nom de capacité est défini dans votre application e2e/config/appium.capabilities.json.

Production

NativeScript - Conclusion

NativeScript est une excellente application mobile permettant aux développeurs Web de tester leur application de manière très simple et sans effort supplémentaire. Les développeurs peuvent développer en toute confiance une application élégante et réussie sans aucun problème dans un court laps de temps.