次の方法で共有


テスト方法

\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 を使用するための前提条件。

  1. ここから Anaconda Python 2.7 (3.5 ではなく) をインストールします https://www.continuum.io/downloads 。一般的な Python パッケージの大部分が含まれています。 または、Python 2.7 https://www.python.org/downloads/ をインストールし、プロンプトに従って必要な追加パッケージをインストールします。

  2. インストール中に http://cygwin.com/install.html CygWin をインストールし、[インターネットからインストール] を選択します (既定の選択)。 重要: [パッケージの選択] 画面で、検索フィールドに「yaml」と入力し、Python セクションを展開します。 "python2-yaml: Python Lib YAML バインド" (NOT "python3-yaml") を選択します。 同様に、検索フィールドに「python2-setuptools」と入力し、Python セクションを展開し、インストールのために "python2-setuptools" を選択します。 次に、インストールを完了します。

  3. Microsoft MPI がインストールされていることを確認します (MSMPI_BINという名前の環境変数が必要です。このためには、msiではなく exe をダウンロードして実行する必要があります)

  4. Cygwin Bash シェルを起動します。

  5. "easy_install-2.7 pip" を実行する

  6. "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 プロジェクトのデバッグを開始します。