測試方法
\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,請執行
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/ ,並依照提示安裝必要的其他套件。
從安裝期間安裝 CygWin 選取 [從 http://cygwin.com/install.html 網際網路安裝] (預設選取專案) 。 重要:在搜尋欄位中選取 [封裝] 畫面類型 「yaml」,然後展開 [Python] 區段。 選取 [python2-yaml:Python Lib YAML 系結] (不是 「python3-yaml」) 。 同樣地,在搜尋欄位中輸入 「python2-setuptools」,展開 [Python] 區段,然後選取 [python2-setuptools] 進行安裝。 然後完成安裝。
請確定您已安裝 Microsoft MPI (應該會有名為 MSMPI_BIN 的環境變數。若要這樣做,您必須下載並執行 exe ,而不是 msi)
啟動 Cygwin Bash 殼層。
執行 「easy_install-2.7 pip」
執行 「pip install six」
注意:某些測試需要名為 CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY 指向資料所在位置的環境變數。 如果外部資料無法使用,將會略過這些測試。
如何從Visual Studio執行和偵錯端對端測試。
您可以使用 TestDriver 上的選項,針對特定端對端測試產生Visual Studio偵錯命令引數 -n
:
python TestDriver.py run -n Image/QuickE2E
從上述命令的輸出中,您只需將 'VS 偵錯命令 args' 複製到 Visual Studio (中CNTK專案的命令引數,以滑鼠右鍵按一下CNTK專案 - > 屬性 - 組態屬性 - >> 偵錯 - > 命令引數) 。 開始對CNTK專案進行偵錯。