テスト方法
\Tests フォルダーに用意されている単体テストとエンド ツー エンド テストは、Windowsおよび Linux プラットフォーム上のビルド サーバー上のチェックイン ワークフローの一部として実行されます。 プラットフォームのテストをローカルで実行して、コードの変更によってテストが中断されなかったことを確認できます。
単体テスト
単体テストは現在、GPU ビルドでのみサポート (およびチェック) されています。
Windows の場合
Boost ライブラリと環境変数、およびVisual Studioの Boost テスト ランナーを設定していることを確認します。 手順については 、こちらを参照してください。
Visual Studio再起動し、[テスト -> テスト 設定] メニューに移動します。 既定のプロセッサ アーキテクチャを x64 に設定し、[テスト実行エンジンを実行したままにする] オプションをオフにします。 [テスト エクスプローラー] ウィンドウで、[特性別にグループ化] を選択します (検索フィールドの横)。 リビルド後、テスト エクスプローラーにすべての単体テストが表示されます。 コンテキスト メニューを使用して、実行とデバッグを行うことができます。
Linux の場合
まず、Boost ライブラリをインストールする必要があります。 手順については 、こちらを参照してください。
その後、ここで指定した CNTK バイナリと同じ方法で単体テスト バイナリをビルドできます。 バイナリは、CNTK バイナリと同じフォルダーに作成されます。 現在、次の単体テストを使用できます。
- mathtests -- 算術演算の単体テスト
- readertests -- リーダーの単体テスト
- networktests -- ネットワーク操作の単体テスト
- brainscripttests -- brainscript の単体テスト
- evaltests -- Eval の単体テスト
対応するバイナリ ファイルを実行して、各単体テストを起動できます。 Boost Unit Test Framework で説明されているコマンド ライン パラメーターを使用して、実行中のテストとテスト出力を制御することもできます。
エンド ツー エンドのテスト
CNTKエンド ツー エンド テストは Linux で実行でき、\Tests\EndToEndTests にある Python スクリプト 'TestDriver.py' を使用してWindowsできます。 または、Visual Studioから実行してデバッグすることもできます。 以下では、詳細を説明します。
- TestDriver.py スクリプトを使用する方法。
- Windowsで TestDriver.py を使用するための前提条件。
- Visual Studio からエンド ツー エンド テストを実行およびデバッグする方法。
TestDriver.py スクリプトを使用する方法。
シェル (Windowsの CygWin Bash シェル) を起動し、ディレクトリをローカル CNTK リポジトリの Tests\EndToEndTests フォルダーに変更します (注: CygWin の c:\src\CNTK は /cygdrive/c/src/CNTK/)。 次のいずれかのコマンドから始めて、TestDriver の使用方法とオプションを確認します。
python TestDriver.py -h
python TestDriver.py run -h
python TestDriver.py list -h
使用可能なすべてのエンド ツー エンド テストの実行を一覧表示するには
python TestDriver.py list
Image/QuickE2E など、1 つのテストを実行するには、
python TestDriver.py run Image/QuickE2E
たとえば、"-d gpu" を追加して、GPU または '-f debug' のみを使用してテストを実行し、デバッグ ビルドのみを使用してテストを実行できます。 すべてのオプションを参照してください python TestDriver.py run -h
。
夜間ビルドからすべてのテストを実行するには、
python TestDriver.py run -t nightly
Windowsで TestDriver.py を使用するための前提条件。
ここから Anaconda Python 2.7 (3.5 ではなく) をインストールします https://www.continuum.io/downloads 。一般的な Python パッケージの大部分が含まれています。 または、Python 2.7 https://www.python.org/downloads/ をインストールし、プロンプトに従って必要な追加パッケージをインストールします。
インストール中に http://cygwin.com/install.html CygWin をインストールし、[インターネットからインストール] を選択します (既定の選択)。 重要: [パッケージの選択] 画面で、検索フィールドに「yaml」と入力し、Python セクションを展開します。 "python2-yaml: Python Lib YAML バインド" (NOT "python3-yaml") を選択します。 同様に、検索フィールドに「python2-setuptools」と入力し、Python セクションを展開し、インストールのために "python2-setuptools" を選択します。 次に、インストールを完了します。
Microsoft MPI がインストールされていることを確認します (MSMPI_BINという名前の環境変数が必要です。このためには、msiではなく exe をダウンロードして実行する必要があります)
Cygwin Bash シェルを起動します。
"easy_install-2.7 pip" を実行する
"pip install 6" を実行する
注: 一部のテストでは、データが存在する場所を指CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORYという名前の環境変数が必要です。 外部データが使用できない場合、これらのテストはスキップされます。
Visual Studioからエンド ツー エンド テストを実行およびデバッグする方法。
特定のエンド ツー エンド テストの TestDriver のオプションを-n
使用して、Visual Studioデバッグ コマンド引数を生成できます。
python TestDriver.py run -n Image/QuickE2E
上記のコマンドの出力から、"VS debugging command args" を Visual Studio の CNTK プロジェクトのコマンド引数にコピーします (CNTK プロジェクトのプロパティ - 構成プロパティ> ->> デバッグ -> コマンド引数を右クリックします)。 CNTK プロジェクトのデバッグを開始します。