Hur man testar
Enhetstesterna och slutpunkt till slutpunkt-testerna som tillhandahålls i mappen \Tests körs som en del av incheckningsarbetsflödet på byggservern på Windows- och Linux-plattformarna. Du kan köra testerna för din plattform lokalt för att kontrollera att kodändringarna inte har brutit något test.
Enhetstester
Enhetstest stöds för närvarande endast (och kontrolleras) för GPU-versioner.
På Windows
Se till att du konfigurerar Boost-biblioteken och miljövariablerna samt Boost-testkören för Visual Studio. Anvisningar finns här.
Starta om Visual Studio och gå till menyn Test –> Testa Inställningar. Där anger du standardarkitekturen för processorn till x64 och avmarkerar alternativet "Keep Test Execution Engine Running" (Behåll testkörningsmotorn igång). I testutforskarens fönster väljer du Gruppera efter egenskaper (bredvid sökfältet). Efter en ombyggnad bör du se alla enhetstester i Test Explorer. Du kan köra och felsöka med snabbmenyn.
I Linux
Först måste du installera Boost-biblioteken. Anvisningar finns här.
Sedan kan du skapa binärfiler för enhetstest på samma sätt som CNTK binärfil, enligt beskrivningen här. Binärfilerna skapas i samma mapp som CNTK binärfilen. Följande enhetstester är för närvarande tillgängliga:
- mathtests – enhetstester för matematiska operationer
- readertests – enhetstester för läsare
- networktests – enhetstester för nätverksåtgärder
- brainscripttests – enhetstester för brainscript
- evaltests – enhetstester för Eval
Du kan starta varje enhetstest genom att köra motsvarande binära fil. Du kan också använda kommandoradsparametrar som beskrivs av Boost Unit Test Framework för att styra körningstester och testutdata.
Slutpunkt till slutpunkt-tester
De CNTK från slutpunkt till slutpunkt-tester kan köras på Linux och Windows med hjälp av Python skriptet "TestDriver.py" som finns i \Tests\EndToEndTests. Alternativt kan de köras och felsökas från Visual Studio. I följande detalj:
- Så här använder du skriptet TestDriver.py.
- Krav för att använda TestDriver.py på Windows.
- Så här kör och felsöker du slutpunkt till slutpunkt-tester från Visual Studio.
Så här använder du skriptet TestDriver.py.
Starta ett gränssnitt (CygWin Bash-gränssnittet under Windows) och ändra katalogen till mappen Tests\EndToEndTests i din lokala CNTK-lagringsplats (obs! c:\src\CNTK i CygWin är /cygdrive/c/src/CNTK/). Börja med något av följande kommandon för att lära dig användning och alternativ för TestDriver:
python TestDriver.py -h
python TestDriver.py run -h
python TestDriver.py list -h
Visa en lista över alla tillgängliga testkörningar från slutpunkt till slutpunkt
python TestDriver.py list
Om du vill köra ett enskilt test, till exempel Image/QuickE2E, kör du
python TestDriver.py run Image/QuickE2E
Du kan till exempel lägga till "-d gpu" för att bara köra testet med hjälp av en GPU eller "-f-felsökning" för att bara köra testet med hjälp av felsökningsversionen. Se python TestDriver.py run -h
för alla alternativ.
Köra alla tester från de nattliga versionerna genom att köra
python TestDriver.py run -t nightly
Krav för att använda TestDriver.py på Windows.
Installera Anaconda Python 2.7 (inte 3.5) härifrån: https://www.continuum.io/downloads som innehåller de flesta populära Python paket. Du kan också installera Python 2.7 https://www.python.org/downloads/ och installera nödvändiga ytterligare paket enligt uppmaningen.
Installera CygWin från http://cygwin.com/install.html Under installationen väljer du "Installera från Internet" (standardval). VIKTIGT! På skärmen Välj paket skriver du "yaml" i sökfältet och expanderar avsnittet Python. Välj "python2-yaml: Python Lib YAML-bindningar" (INTE "python3-yaml"). På samma sätt skriver du "python2-setuptools" i sökfältet, expanderar avsnittet Python och väljer "python2-setuptools" för installation. Slutför sedan installationen.
Kontrollera att Microsoft MPI är installerat (det bör finnas en miljövariabel med namnet MSMPI_BIN. För detta måste du ladda ned och köra exe och inte msi)
Starta ett Cygwin Bash-gränssnitt.
Kör "easy_install-2.7 pip"
Kör "pip install six"
Obs! Vissa tester kräver en miljövariabel med namnet CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY som pekar på var data finns. Om externa data inte är tillgängliga hoppas testerna över.
Så här kör och felsöker du slutpunkt till slutpunkt-tester från Visual Studio.
Du kan generera Visual Studio kommandoargument för -n
felsökning med hjälp av alternativen på TestDriver för ett specifikt test från slutpunkt till slutpunkt:
python TestDriver.py run -n Image/QuickE2E
Från utdata från kommandot ovan kopierar du helt enkelt VS-felsökningskommandot args till kommandoargumenten för CNTK-projektet i Visual Studio (Högerklicka på CNTK projekt – Egenskaper –>> Konfigurationsegenskaper –> Felsökning –> Kommandoargument). Börja felsöka CNTK-projektet.