Come eseguire il test

Gli unit test e i test end-to-end forniti nella cartella \Tests vengono eseguiti come parte del flusso di lavoro di archiviazione nel server di compilazione nelle piattaforme Windows e Linux. È possibile eseguire i test per la piattaforma in locale per verificare che le modifiche al codice non interrompano alcun test.

Unit test

Gli unit test sono attualmente supportati (e controllati) solo per le build GPU.

In Windows

Assicurarsi di configurare le librerie Boost e le variabili di ambiente, nonché lo strumento di esecuzione del test Boost per Visual Studio. Per istruzioni, vedere qui.

Riavviare Visual Studio e passare al menu "Test -> Test Impostazioni". Impostare l'architettura del processore predefinita su x64 e deselezionare l'opzione "Mantieni il motore di esecuzione test in esecuzione". Nella finestra Esplora test selezionare Raggruppa per tratti (accanto al campo di ricerca). Dopo una ricompilazione, tutti gli unit test verranno visualizzati in Esplora test. È possibile eseguire ed eseguire il debug usando il menu di scelta rapida.

In Linux

Prima di tutto è necessario installare le librerie Boost. Per istruzioni, vedere qui.

È quindi possibile compilare file binari di unit test nello stesso modo del file binario CNTK, come specificato qui. I file binari vengono creati nella stessa cartella del file binario CNTK. Sono attualmente disponibili gli unit test seguenti:

  • mathtests - unit test per le operazioni matematiche
  • readertests -- unit test per i lettori
  • networktests -- unit test per le operazioni di rete
  • brainscripttests -- unit test per brainscript
  • evaltests -- unit test per Eval

È possibile avviare ogni unit test eseguendo il file binario corrispondente. È anche possibile usare i parametri della riga di comando descritti da Boost Unit Test Framework per controllare l'esecuzione di test e l'output dei test.

Test end-to-end

I test end-to-end CNTK possono essere eseguiti in Linux e Windows usando lo script Python "TestDriver.py" che si trova in \Tests\EndToEndTests. In alternativa, possono essere eseguiti e sottoposto a debug da Visual Studio. Nei dettagli seguenti:

  • Come usare lo script TestDriver.py.
  • Prerequisiti per l'uso di TestDriver.py in Windows.
  • Come eseguire ed eseguire il debug di test end-to-end da Visual Studio.

Come usare lo script TestDriver.py.

Avviare una shell (shell CygWin Bash in Windows) e passare alla cartella Tests\EndToEndTests del repository CNTK locale (nota: c:\src\CNTK in CygWin è /cygdrive/c/src/CNTK/). Iniziare con uno dei comandi seguenti per apprendere l'utilizzo e le opzioni di TestDriver:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

Per elencare tutti i test end-to-end disponibili, eseguire

python TestDriver.py list

Per eseguire un singolo test, ad esempio Image/QuickE2E, eseguire

python TestDriver.py run Image/QuickE2E

È possibile aggiungere ad esempio '-d gpu' per eseguire il test solo usando una GPU o '-f debug' per eseguire il test solo usando la compilazione di debug. Vedere python TestDriver.py run -h per tutte le opzioni.

Per eseguire tutti i test dalle compilazioni notturne, eseguire

python TestDriver.py run -t nightly

Prerequisiti per l'uso di TestDriver.py in Windows.

  1. Installare Anaconda Python 2.7 (non 3.5) da qui: https://www.continuum.io/downloads che contiene la maggior parte dei pacchetti Python più diffusi. In alternativa, installare Python 2.7 https://www.python.org/downloads/ e installare i pacchetti aggiuntivi necessari come richiesto.

  2. Installare CygWin da http://cygwin.com/install.html Durante l'installazione selezionare "Installa da Internet" (selezione predefinita). IMPORTANTE: nella schermata Seleziona pacchetti digitare "yaml" nel campo di ricerca ed espandere la sezione Python. Selezionare "python2-yaml: binding YAML di Python Lib" (NOT "python3-yaml"). Analogamente, digitare "python2-setuptools" nel campo di ricerca, espandere la sezione Python e selezionare "python2-setuptools" per l'installazione. Completare quindi l'installazione.

  3. Assicurarsi di avere installato Microsoft MPI (deve essere presente una variabile di ambiente denominata MSMPI_BIN. Per questo è necessario scaricare ed eseguire l'exe e non l'msi)

  4. Avviare una shell Cygwin Bash.

  5. Eseguire "easy_install-2.7 pip"

  6. Eseguire "pip install six"

Nota: alcuni test richiedono una variabile di ambiente denominata CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY che punta alla posizione in cui risiedono i dati. Se i dati esterni non sono disponibili, tali test verranno ignorati.

Come eseguire ed eseguire il debug di test end-to-end da Visual Studio.

È possibile generare gli argomenti del comando di debug Visual Studio usando le -n opzioni disponibili in TestDriver per un test end-to-end specifico:

python TestDriver.py run -n Image/QuickE2E

Dall'output del comando precedente è sufficiente copiare gli argomenti del comando di debug di Visual Studio negli argomenti di comando del progetto CNTK in Visual Studio (fare clic con il pulsante destro del mouse su CNTK progetto -> Proprietà -> Proprietà di configurazione - Debug ->> Argomenti comando). Avviare il debug del progetto CNTK.