NativeScript - Тестирование

Тестирование - очень важный этап в жизненном цикле разработки приложения. Это обеспечивает качество приложения. Это требует тщательного планирования и исполнения. Также это наиболее трудоемкий этап разработки. Фреймворк NativeScript обеспечивает обширную поддержку автоматического тестирования приложения.

Типы тестирования

Как правило, для тестирования приложения доступны три типа процессов тестирования. Они следующие -

Модульное тестирование

Модульное тестирование - это самый простой метод тестирования приложения. Он основан на обеспечении правильности фрагмента кода (функции в целом) или метода класса. Но, он не отражает реальную среду и впоследствии. Это наименьший вариант поиска ошибок.

Как правило, NativeScript использует Jasmine, Mocha with Chai и среды модульного тестирования QUnit.

Чтобы выполнить это, сначала вам нужно настроить в своем проекте с помощью следующей команды -

tns test init

Теперь вы получите следующий ответ -

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

Теперь выберите jasmine framework и ваш экран выглядит примерно так -

? 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 webpack@^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.

Теперь тестовый файл создается внутри src \ tests \ example.ts.

Создайте свои тесты

Давайте добавим простой тест в файл example.ts, как показано ниже -

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

Вот,

Сначала проверьте, равен ли счетчик 10, и проверьте, осталось ли сообщение 10 нажатий.

Давайте запустим тест на следующем шаге.

Проведите свои тесты

Теперь запустите тест на устройстве, подключенном к Android или iOS, используя следующую команду -

tns test android

Это вернет следующий статус -

? 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

Затем выберите вариант ниже -

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

Чтобы выполнить свой тестовый набор в симуляторе Android, выполните следующую команду -

tns test android --emulator

Теперь сервер karma готовит сборки и развертывает ваш проект.

Сквозное (E2E) тестирование

Модульные тесты - это небольшой, простой и быстрый процесс, тогда как на этапе тестирования E2E задействованы и работают вместе несколько компонентов, охватывающих потоки в приложении. Этого нельзя было достичь с помощью модульных и интеграционных тестов.

NativeScript Appiumплагин используется для выполнения тестирования автоматизации E2E. Что ж, Appium - это платформа для тестирования мобильных приложений с открытым исходным кодом. Чтобы добавить эту структуру в свой проект, у вас должна быть последняя версия XCode или Android SDK выше 25.3.0.

Установить Appium

Давайте установим Appium глобально с помощью модуля npm -

npm install -g appium

Теперь вы могли увидеть следующий ответ -

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

Добавить плагин

Добавим nativescript-dev-appium плагин как devDependency к вашему проекту, используя следующую команду -

$ npm install -D nativescript-dev-appium

Выполнив это, выберите mocha framework, и вы получите ответ, подобный этому -

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

Теперь файлы хранятся в папке вашего проекта.

Собери свое устройство

Давайте создадим устройство Android, используя следующую команду -

tns build android

Приведенная выше команда запустит тесты, в которых будут указаны целевые возможности. Если у вас есть устройство iOS, вы можете построить, используяiOS устройство.

Запустить тест

Теперь мы настроили устройство. Давайте запустим наш тест, используя следующую команду -

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

Вот,

имя-возможности определяется внутри вашего приложения e2e/config/appium.capabilities.json.

Вывод

NativeScript - Заключение

NativeScript - отличное мобильное приложение для веб-разработчиков, которое позволяет очень легко полностью протестировать свое приложение, не прилагая дополнительных усилий. Разработчики могут уверенно разработать как красивое, так и успешное приложение без каких-либо проблем за короткий период времени.