NativeScript-테스트

테스트는 애플리케이션의 개발 수명주기에서 매우 중요한 단계입니다. 애플리케이션 품질을 보장합니다. 신중한 계획과 실행이 필요합니다. 또한 개발에서 가장 많은 시간이 소요되는 단계입니다. NativeScript 프레임 워크는 응용 프로그램의 자동화 된 테스트를위한 광범위한 지원을 제공합니다.

테스트 유형

일반적으로 응용 프로그램을 테스트하는 데 세 가지 유형의 테스트 프로세스를 사용할 수 있습니다. 그들은 다음과 같습니다-

단위 테스트

단위 테스트는 응용 프로그램을 테스트하는 가장 쉬운 방법입니다. 이는 코드 조각 (일반적으로 함수) 또는 클래스 메서드의 정확성을 보장하는 데 기반합니다. 그러나 실제 환경과 그에 따른 결과를 반영하지 않습니다. 버그를 찾는 가장 적은 옵션입니다.

일반적으로 NativeScript는 Jasmine, Mocha와 Chai 및 QUnit 단위 테스트 프레임 워크를 사용합니다.

이를 수행하려면 먼저 아래 명령을 사용하여 프로젝트에서 구성해야합니다.

tns test init

이제 다음과 같은 응답을 얻습니다.

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

이제 선택 jasmine 프레임 워크와 화면은 다음과 유사합니다.

? 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

이제 카르마 서버가 빌드를 준비하고 프로젝트를 배포합니다.

종단 간 (E2E) 테스트

단위 테스트는 작고 간단하며 빠른 프로세스 인 반면, E2E 테스트 단계는 여러 구성 요소가 관련되고 함께 작동하여 애플리케이션의 흐름을 다룹니다. 이것은 단위 및 통합 테스트로는 달성 할 수 없습니다.

NativeScript Appium플러그인은 E2E 자동화 테스트를 수행하는 데 사용됩니다. Appium은 모바일 앱용 오픈 소스 테스트 프레임 워크입니다. 프로젝트에이 프레임 워크를 추가하려면 최신 버전의 XCode 또는 25.3.0 이상의 Android SDK가 있어야합니다.

Appium 설치

npm 모듈을 사용하여 Appium을 전역 적으로 설치해 보겠습니다.

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 프레임 워크와 비슷한 응답을 받게됩니다.

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

여기,

capability-name은 애플리케이션 내부에 정의되어 있습니다. e2e/config/appium.capabilities.json.

산출

NativeScript-결론

NativeScript는 웹 개발자가 별도의 노력을 기울이지 않고도 매우 쉬운 방법으로 애플리케이션을 완전히 테스트 할 수있는 훌륭한 모바일 앱입니다. 개발자는 단기간에 문제없이 멋진 외관과 성공적인 애플리케이션을 자신있게 개발할 수 있습니다.