Udostępnij przez


Jak testować

Testy jednostkowe i kompleksowe testy udostępnione w folderze \Tests są uruchamiane w ramach przepływu pracy ewidencjonowania na serwerze kompilacji na platformach Windows i Linux. Możesz uruchomić testy dla platformy lokalnie, aby sprawdzić, czy zmiany kodu nie przerwały żadnego testu.

Testy jednostkowe

Test jednostkowy jest obecnie obsługiwany tylko (i sprawdzany) dla kompilacji procesora GPU.

W systemie Windows

Upewnij się, że skonfigurowaliśmy biblioteki Boost i zmienne środowiskowe, a także moduł uruchamiający testy Boost dla Visual Studio. Aby uzyskać instrukcje, zobacz tutaj.

Uruchom ponownie Visual Studio i przejdź do menu "Test -> Test Ustawienia". Dla domyślnej architektury procesora ustawiono wartość x64 i usuń zaznaczenie opcji "Zachowaj uruchomiony aparat wykonywania testu". W oknie Eksplorator testów wybierz pozycję Grupuj według cech (obok pola wyszukiwania). Po odbudowie wszystkie testy jednostkowe powinny być widoczne w Eksploratorze testów. Możesz uruchomić i debugować przy użyciu menu kontekstowego.

W systemie Linux

Najpierw należy zainstalować biblioteki Boost. Aby uzyskać instrukcje, zobacz tutaj.

Następnie możesz utworzyć pliki binarne testów jednostkowych w taki sam sposób, jak CNTK binarne, jak określono tutaj. Pliki binarne są tworzone w tym samym folderze co plik binarny CNTK. Obecnie są dostępne następujące testy jednostkowe:

  • mathtests — testy jednostkowe dla operacji matematycznych
  • readertests — testy jednostkowe dla czytelników
  • networktests — testy jednostkowe dla operacji sieciowych
  • brainscripttests - testy jednostkowe dla skryptu mózgu
  • evaltests — testy jednostkowe dla Eval

Każdy test jednostkowy można uruchomić, uruchamiając odpowiedni plik binarny. Możesz również użyć parametrów wiersza polecenia opisanych przez platformę Boost Unit Test Framework do kontrolowania uruchomionych testów i danych wyjściowych testów.

Kompleksowe testy

Testy kompleksowe CNTK można uruchamiać w systemie Linux i Windows przy użyciu skryptu języka Python "TestDriver.py" znajdującego się w folderze \Tests\EndToEndTests. Alternatywnie można je uruchamiać i debugować z poziomu Visual Studio. Poniżej szczegółowo opisano następujące kwestie:

  • Jak używać skryptu TestDriver.py.
  • Wymagania wstępne dotyczące używania TestDriver.py w Windows.
  • Jak uruchamiać i debugować kompleksowe testy z poziomu programu Visual Studio.

Jak używać skryptu TestDriver.py.

Uruchom powłokę (powłokę CygWin Bash w obszarze Windows) i zmień katalog na folder Tests\EndToEndTests repozytorium CNTK lokalnego (uwaga: c:\src\CNTK w folderze CygWin to /cygdrive/c/src/CNTK/). Zacznij od jednego z następujących poleceń, aby poznać użycie i opcje usługi TestDriver:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

Aby wyświetlić listę wszystkich dostępnych testów end-to-end, uruchomień

python TestDriver.py list

Aby uruchomić pojedynczy test, na przykład Image/QuickE2E, wykonaj polecenie

python TestDriver.py run Image/QuickE2E

Możesz dodać na przykład "-d gpu", aby uruchomić test tylko przy użyciu procesora GPU lub debugowania "-f", aby uruchomić test tylko przy użyciu kompilacji debugowania. Zobacz, aby zapoznać się python TestDriver.py run -h ze wszystkimi opcjami.

Aby uruchomić wszystkie testy z nocnych kompilacji, wykonaj polecenie

python TestDriver.py run -t nightly

Wymagania wstępne dotyczące używania TestDriver.py w Windows.

  1. Zainstaluj program Anaconda Python 2.7 (nie 3.5) z tego miejsca: https://www.continuum.io/downloads który zawiera najbardziej popularne pakiety języka Python. Alternatywnie zainstaluj język Python 2.7 https://www.python.org/downloads/ i zainstaluj wymagane dodatkowe pakiety zgodnie z monitem.

  2. Zainstaluj aplikację CygWin z http://cygwin.com/install.html obszaru Podczas instalacji wybierz pozycję "Zainstaluj z Internetu" (wybór domyślny). WAŻNE: Na ekranie Wybierz pakiety wpisz ciąg "yaml" w polu wyszukiwania i rozwiń sekcję Python. Wybierz pozycję "python2-yaml: Powiązania YAML w języku Python" (NIE "python3-yaml"). Podobnie wpisz ciąg "python2-setuptools" w polu wyszukiwania, rozwiń sekcję Języka Python i wybierz pozycję "python2-setuptools" do instalacji. Następnie zakończ instalację.

  3. Upewnij się, że masz zainstalowane rozwiązanie Microsoft MPI (powinna istnieć zmienna środowiskowa o nazwie MSMPI_BIN. W tym celu należy pobrać i uruchomić plik exe , a nie plik msi)

  4. Uruchom powłokę Cygwin Bash.

  5. Uruchom polecenie "easy_install-2.7 pip"

  6. Uruchom polecenie "pip install six"

Uwaga: Niektóre testy wymagają zmiennej środowiskowej o nazwie CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY wskazującej miejsce, w którym znajdują się dane. Jeśli dane zewnętrzne nie są dostępne, te testy zostaną pominięte.

Jak uruchamiać i debugować kompleksowe testy z Visual Studio.

Argumenty polecenia debugowania Visual Studio można wygenerować przy użyciu -n opcji w usłudze TestDriver dla określonego testu kompleksowego:

python TestDriver.py run -n Image/QuickE2E

W danych wyjściowych powyższego polecenia wystarczy skopiować polecenie "VS debugging command args" do argumentów polecenia projektu CNTK w Visual Studio (kliknij prawym przyciskiem myszy projekt CNTK —> Właściwości konfiguracji —> Właściwości konfiguracji — Debugowanie —>> Argumenty poleceń). Rozpocznij debugowanie projektu CNTK.