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 - отличное мобильное приложение для веб-разработчиков, которое позволяет очень легко полностью протестировать свое приложение, не прилагая дополнительных усилий. Разработчики могут уверенно разработать как красивое, так и успешное приложение без каких-либо проблем за короткий период времени.