NativeScript - Pruebas

Las pruebas son una fase muy importante en el ciclo de vida de desarrollo de una aplicación. Asegura una aplicación de calidad. Necesita una planificación y ejecución cuidadosas. También es la fase más lenta del desarrollo. El framework NativeScript proporciona un amplio soporte para las pruebas automatizadas de una aplicación.

Tipos de pruebas

Generalmente, hay tres tipos de procesos de prueba disponibles para probar una aplicación. Son los siguientes:

Examen de la unidad

La prueba unitaria es el método más sencillo para probar una aplicación. Se basa en asegurar la corrección de un fragmento de código (una función, en general) o un método de una clase. Pero, no refleja el entorno real y posteriormente. Es la menor opción para encontrar los errores.

Generalmente, NativeScript usa los marcos de prueba unitarios Jasmine, Mocha con Chai y QUnit.

Para realizar esto, primero debe configurar en su proyecto usando el siguiente comando:

tns test init

Ahora, obtienes la siguiente respuesta:

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

Ahora, seleccione jasmine framework y su pantalla se ve similar a esto -

? 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.

Ahora, el archivo de prueba se crea dentro de src \ tests \ example.ts.

Crea tus pruebas

Agreguemos una prueba simple dentro del archivo example.ts como se muestra a continuación:

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"); 
   }); 
});

Aquí,

Primero, verifique si el contador es igual a 10 y verifique si quedan 10 toques en el mensaje.

Ejecutemos la prueba en el siguiente paso.

Ejecute sus pruebas

Ahora, ejecute la prueba en un dispositivo conectado con Android o iOS usando el siguiente comando:

tns test android

Esto devolverá el siguiente estado:

? 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

Luego elija la siguiente opción:

? 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 
.....

Para ejecutar su conjunto de pruebas en el simulador de Android, ejecute el siguiente comando:

tns test android --emulator

Ahora, karma server prepara las compilaciones y despliega su proyecto.

Prueba de extremo a extremo (E2E)

Las pruebas unitarias son un proceso pequeño, simple y rápido, mientras que en la fase de prueba E2E participan múltiples componentes y trabajan juntos, lo que cubre los flujos en la aplicación. Esto no se pudo lograr mediante pruebas unitarias y de integración.

NativeScript AppiumEl complemento se utiliza para realizar pruebas de automatización E2E. Bueno, Appium es un marco de prueba de código abierto para aplicaciones móviles. Para agregar este marco en su proyecto, debe tener la última versión de XCode o Android SDK por encima de la 25.3.0.

Instalar Appium

Instalemos Appium globalmente usando el módulo npm -

npm install -g appium

Ahora, podría ver la siguiente respuesta:

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

Agregar complemento

Agreguemos nativescript-dev-appium plugin como devDependency para su proyecto usando el siguiente comando:

$ npm install -D nativescript-dev-appium

Después de ejecutar esto, elija mocha framework y obtendrá una respuesta similar a esta:

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

Ahora, los archivos se almacenan dentro de la carpeta de su proyecto.

Construye tu dispositivo

Construyamos un dispositivo Android usando el siguiente comando:

tns build android

El comando anterior ejecutará las pruebas debe especificar las capacidades de destino. Si tiene un dispositivo iOS, puede compilar usandoiOS dispositivo.

Ejecutar prueba

Ahora, hemos configurado el dispositivo. Ejecutemos nuestra prueba usando el siguiente comando:

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

Aquí,

El nombre de capacidad está definido dentro de su aplicación. e2e/config/appium.capabilities.json.

Salida

NativeScript - Conclusión

NativeScript es una gran aplicación móvil para que los desarrolladores web prueben su aplicación por completo de una manera muy fácil sin hacer esfuerzos adicionales. Los desarrolladores pueden desarrollar con confianza una aplicación excelente y exitosa sin ningún problema en un corto período de tiempo.