Freigeben über


So führen Sie einen Test durch

Die im Ordner \Tests bereitgestellten Komponententests und End-to-End-Tests werden als Teil des Check-In-Workflows auf dem Buildserver auf den Windows- und Linux-Plattformen ausgeführt. Sie können die Tests für Ihre Plattform lokal ausführen, um zu überprüfen, ob Ihre Codeänderungen keinen Test abgebrochen haben.

Komponententests

Der Komponententest wird derzeit nur für GPU-Builds unterstützt (und überprüft).

Unter Windows

Stellen Sie sicher, dass Sie die Boost-Bibliotheken und Umgebungsvariablen sowie den Boost-Testläufer für Visual Studio einrichten. Anweisungen finden Sie hier.

Starten Sie Visual Studio neu, und wechseln Sie zum Menü "Test --> Test Einstellungen". Es legt die Standardprozessorarchitektur auf x64 fest und deaktivieren Sie die Option "Ausführen des Testausführungsmoduls beibehalten". Wählen Sie im Fenster "Test-Explorer" "Gruppen nach Merkmalen" (neben dem Suchfeld) aus. Nach einem Neuaufbau sollten alle Komponententests im Test-Explorer angezeigt werden. Sie können mithilfe des Kontextmenüs ausführen und debuggen.

Unter Linux

Zuerst müssen Sie die Boost-Bibliotheken installieren. Anweisungen finden Sie hier.

Anschließend können Sie Komponententest-Binärdateien auf dieselbe Weise wie die CNTK Binärdatei erstellen, wie hier angegeben. Die Binärdateien werden im gleichen Ordner wie die CNTK Binärdatei erstellt. Die folgenden Komponententests sind derzeit verfügbar:

  • mathtests -- Einheitstests für mathematische Vorgänge
  • Readertests -- Komponententests für Leser
  • Netzwerktests –- Komponententests für Netzwerkvorgänge
  • brainscripttests –- Einheitentests für Brainscript
  • evaltests -- Komponententests für Eval

Sie können jeden Komponententest starten, indem Sie die entsprechende Binärdatei ausführen. Sie können auch Befehlszeilenparameter verwenden, die von Boost Unit Test Framework beschrieben werden, um die Ausführung von Tests und Testausgabe zu steuern.

End-to-End-Tests

Die CNTK End-to-End-Tests können unter Linux ausgeführt werden und Windows mithilfe des Python-Skripts "TestDriver.py" in \Tests\EndToEndTests ausgeführt werden. Alternativ können sie von Visual Studio ausgeführt und debuggen. Im folgenden Detail:

  • Verwenden des TestDriver.py-Skripts.
  • Voraussetzungen für die Verwendung von TestDriver.py auf Windows.
  • Ausführen und Debuggen von End-to-End-Tests aus Visual Studio.

Verwenden des TestDriver.py-Skripts.

Starten Sie eine Shell (CygWin Bash-Shell unter Windows) und ändern Sie das Verzeichnis in den Ordner "Tests\EndToEndTests" Ihres lokalen CNTK-Repositorys (Hinweis: c:\src\CNTK in CygWin ist /cygdrive/c/src/CNTK/). Beginnen Sie mit einem der folgenden Befehle, um die Verwendung und Optionen des TestDriver zu erfahren:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

So listen Sie alle verfügbaren End-to-End-Tests auf

python TestDriver.py list

Um einen einzelnen Test auszuführen, führen Sie z. B. Image/QuickE2E aus.

python TestDriver.py run Image/QuickE2E

Sie können beispielsweise "-d gpu" hinzufügen, um den Test nur mit einer GPU oder einem '-f-Debug' auszuführen, um den Test nur mithilfe des Debugbuilds auszuführen. Weitere Informationen finden Sie python TestDriver.py run -h unter allen Optionen.

So führen Sie alle Tests aus den nachtmäßigen Builds aus.

python TestDriver.py run -t nightly

Voraussetzungen für die Verwendung von TestDriver.py auf Windows.

  1. Installieren Sie Anaconda Python 2.7 (nicht 3.5) von hier aus: https://www.continuum.io/downloads die meisten der beliebtesten Python-Pakete. Alternativ installieren Sie Python 2.7 https://www.python.org/downloads/ und installieren Sie erforderliche zusätzliche Pakete wie aufgefordert.

  2. Installieren Sie CygWin aus http://cygwin.com/install.html der Installation während der Installation wählen Sie "Aus Internet installieren" (Standardauswahl). WICHTIG: Geben Sie auf dem Bildschirm "Pakete auswählen" im Suchfeld "yaml" ein, und erweitern Sie den Python-Abschnitt. Wählen Sie "python2-yaml: Python Lib YAML bindings" (NOT "python3-yaml"). Geben Sie auch "python2-setuptools" im Suchfeld ein, erweitern Sie den Python-Abschnitt, und wählen Sie "python2-setuptools" für die Installation aus. Beenden Sie dann die Installation.

  3. Stellen Sie sicher, dass Microsoft MPI installiert ist (es sollte eine Umgebungsvariable mit dem Namen MSMPI_BIN vorhanden sein. Für dies müssen Sie die Exe herunterladen und ausführen und nicht die msi)

  4. Starten Sie eine Cygwin Bash-Shell.

  5. Ausführen von "easy_install-2.7 Pip"

  6. Ausführen von "Pip install six"

Hinweis: Einige Tests erfordern eine Umgebungsvariable mit dem Namen CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY, auf die sich die Daten befinden. Wenn die externen Daten nicht verfügbar sind, werden diese Tests übersprungen.

Ausführen und Debuggen von End-to-End-Tests aus Visual Studio.

Sie können die Visual Studio Debugbefehlsargumente mithilfe der -n Optionen im TestDriver für einen bestimmten End-to-End-Test generieren:

python TestDriver.py run -n Image/QuickE2E

Aus der Ausgabe des obigen Befehls kopieren Sie einfach die Befehlsargumente des CNTK Projekts in Visual Studio (Klicken Sie mit der rechten Maustaste auf CNTK Projekt> - Eigenschaften> - Konfigurationseigenschaften> - Debuggen> - Befehlsargumente). Starten Sie das Debuggen des CNTK Projekts.