NativeScript-テスト

テストは、アプリケーションの開発ライフサイクルにおいて非常に重要なフェーズです。アプリケーションの品質を保証します。慎重な計画と実行が必要です。また、開発の中で最も時間のかかるフェーズです。NativeScriptフレームワークは、アプリケーションの自動テストを広範囲にサポートします。

テストの種類

一般に、アプリケーションのテストには3種類のテストプロセスを利用できます。それらは次のとおりです-

ユニットテスト

単体テストは、アプリケーションをテストする最も簡単な方法です。これは、コードの一部(一般に関数)またはクラスのメソッドの正確性を保証することに基づいています。しかし、それは実際の環境とその後を反映していません。バグを見つけるのは最小限のオプションです。

通常、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

これで、karmaサーバーがビルドを準備してプロジェクトをデプロイします。

エンドツーエンド(E2E)テスト

単体テストは小さく、シンプルで高速なプロセスですが、E2Eテストフェーズでは複数のコンポーネントが関与し、アプリケーションのフローをカバーするように連携して機能します。これは、ユニットテストと統合テストでは達成できませんでした。

NativeScript Appiumプラグインは、E2E自動化テストを実行するために使用されます。Appiumは、モバイルアプリ向けのオープンソースのテストフレームワークです。このフレームワークをプロジェクトに追加するには、25.3.0以降の最新バージョンのXCodeまたはAndroidSDKが必要です。

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>

ここに、

機能名はアプリケーション内で定義されます e2e/config/appium.capabilities.json

出力

NativeScript-結論

NativeScriptは、Web開発者が余分な労力をかけることなく、非常に簡単な方法でアプリケーションを完全にテストするための優れたモバイルアプリです。開発者は、短期間で問題なく見栄えが良く、成功するアプリケーションを自信を持って開発できます。