ユニット・テスト・カバレッジ

STH コンポーネントのソースコードには、コンポーネントによって公開されている機能セット全体の正しい機能を検証する一連のテストが含まれています。このセットに含まれるもの :

  • データベースへの接続を確認するテスト
  • STHコンポーネントの正しい開始を確認するためのテスト
  • STHコンポーネントのチェックでは、受信可能なすべてのリクエスト、無効なURLパス(ルート)および可能なクエリパラメータのすべての組み合わせを含むリクエストが正しく処理されるかをテスト
  • ランダムなイベント(属性値)をデータベースに挿入した後、正しい集計時系列情報を照会するかどうかをテスト
  • (偽の) Orion Content Broker による(シミュレートされた)通知を受け取ったときに正しい集約時系列情報の生成することを確認するためのテスト

前提条件

実行中の MongoDB データベースのインスタンス

テストの実行

テストスイートを実行するには、Grunt クライアントをインストールしておく必要があります。次のコマンドを使用してインストールできます。実行には root 権限が必要です :

npm install -g grunt-cli

クライアントがインストールされ、依存関係がダウンロードされたら、以下を使用してテストを実行できます :

grunt test

これにより、機能テストと構文チェックも実行されます。

テストスイートは、パーソナライズに使用できる環境変数として次のパラメータを受け入れます :

  • SAMPLES : 生成され、データベースに挿入されるランダムイベントの数。オプション。デフォルト値 : "5"
  • EVENT_NOTIFICATION_CONTEXT_ELEMENTS : STH コンポーネントに送信されるシミュレートされた通知に含まれるコンテキスト要素の数。オプション。デフォルト値 : 3
  • ENTITY_ID : ランダムイベントが生成されるエンティティのID。オプション。デフォルト値 : "entityId"
  • ENTITY_TYPE : ランダムイベントが生成されるエンティティの型。オプション。デフォルト値 : "entityType"
  • ATTRIBUTE_NAME : ランダムイベントが生成される属性のID。オプション。デフォルト値 : "attrName"
  • ATTRIBUTE_TYPE : ランダムイベントが生成される属性の型。オプション。デフォルト値 : "attrType"
  • START_DATE : ランダムイベントが生成される日付。オプション。デフォルト値 : 現在の時刻を使用する Orion Context Broker の通知のテストとの衝突を避けるため、前年の初めに開始します。たとえば、2015年に開始日は "2015-01-01T00:00:00", UTC 時間に設定されます。これらの衝突が発生する可能性があるため、開始日を設定する場合は非常に注意してください
  • END_DATE : ランダムイベントが生成される前の日付。オプション。デフォルト値 : 現在の時刻を使用する Orion Context Broker の通知のテストとの衝突を避けるため、前年の終わりを示します。たとえば、2015年に終了日は "2014-12-31T23:59:59", UTC 時間に設定されます。これらの衝突が発生する可能性があるため、終了日を設定する場合は非常に注意してください
  • MIN_VALUE : ランダムイベントに関連付けられた最小値。オプション。デフォルト値 : "0"。
  • MAX_VALUE : ランダムイベントに関連付けられた最大値。オプション。デフォルト値 : "100"
  • CLEAN : テスト後に生成されたコレクションを削除するかどうかを示すフラグ。オプション。デフォルト値 : "true"

たとえば、100個のサンプルを使用してテストを実行するには、テストを実行した後にデータベースをクリーンアップしないで、特定の開始および終了データを使用するには : For example, to run the tests using 100 samples, certain start and end data without cleaning up the database after running

SAMPLES=100 START_DATE=2014-02-14T00:00:00 END_DATE=2014-02-14T23:59:59 CLEAN=false grunt test

CLEAN オプションを false に設定してテストを実行する場合、MongoDB (mongo) シェルを使用してデータベースの内容を検査できます。