Поделиться через


Как тестировать

Модульные тесты и сквозные тесты, предоставляемые в папке \Tests, выполняются как часть рабочего процесса возврата на сервере сборки на платформах Windows и Linux. Вы можете запустить тесты для платформы локально, чтобы убедиться, что изменения кода не прервали никаких тестов.

Модульные тесты

Модульный тест в настоящее время поддерживается только (и проверяется) для сборок GPU.

В Windows

Убедитесь, что вы настроили библиотеки Boost и переменные среды, а также средство запуска тестов Boost для Visual Studio. Инструкции см. здесь.

Перезапустите Visual Studio и перейдите в меню "Тест —> тест Параметры". Установите для архитектуры процессора по умолчанию значение x64 и снимите флажок "Keep Test Execution Engine Running". В окне обозревателя тестов выберите "Группировать по признакам" (рядом с полем поиска). После перестроения в обозревателе тестов должны отобразиться все модульные тесты. Вы можете запускать и отлаживать с помощью контекстного меню.

В Linux

Сначала необходимо установить библиотеки Boost. Инструкции см. здесь.

Затем можно создавать двоичные файлы модульного теста так же, как и двоичный файл CNTK, как указано здесь. Двоичные файлы создаются в той же папке, что и двоичный файл CNTK. В настоящее время доступны следующие модульные тесты:

  • mathtests — модульные тесты для математических операций
  • readertests — модульные тесты для читателей
  • networktests — модульные тесты для сетевых операций
  • brainscripttests — модульные тесты для brainscript
  • evaltests — модульные тесты для Eval

Вы можете запустить каждый модульный тест, запустив соответствующий двоичный файл. Вы также можете использовать параметры командной строки, описанные в boost Unit Test Framework , для управления выполнением тестов и выходными данными теста.

Сквозные тесты

Комплексные тесты CNTK можно запускать в Linux и Windows с помощью скрипта Python "TestDriver.py", расположенного в папке \Tests\EndToEndTests. Кроме того, их можно запускать и отлаживать из Visual Studio. Ниже приведены подробные сведения:

  • Использование скрипта TestDriver.py.
  • Необходимые условия для использования TestDriver.py на Windows.
  • Запуск и отладка сквозных тестов из Visual Studio.

Использование скрипта TestDriver.py.

Запустите оболочку (оболочку CygWin Bash в Windows) и перейдите в папку Tests\EndToEndTests локального репозитория CNTK (примечание: c:\src\CNTK в CygWin — /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", чтобы выполнить тест только с помощью отладочной сборки. Ознакомьтесь python TestDriver.py run -h со всеми параметрами.

Выполнение всех тестов из ночных сборок

python TestDriver.py run -t nightly

Необходимые условия для использования TestDriver.py на Windows.

  1. Установите Anaconda Python 2.7 (не 3.5) здесь: https://www.continuum.io/downloads который содержит большинство популярных пакетов Python. Кроме того, установите Python 2.7 https://www.python.org/downloads/ и установите необходимые дополнительные пакеты по запросу.

  2. Установите CygWin из http://cygwin.com/install.html программы "Во время установки" выберите "Установить из Интернета" (по умолчанию). ВАЖНО! На экране выбора пакетов в поле поиска введите "yaml" и разверните раздел Python. Выберите "python2-yaml: Python привязки YAML lib" (НЕ "python3-yaml"). Аналогичным образом введите python2-setuptools в поле поиска, разверните раздел Python и выберите python2-setuptools для установки. Затем завершите установку.

  3. Убедитесь, что установлен microsoft MPI (должна быть переменная среды с именем MSMPI_BIN. Для этого необходимо скачать и запустить exe-файл , а не msi)

  4. Запустите оболочку Cygwin Bash.

  5. Запустите "easy_install-2.7 pip"

  6. Запуск "pip install six"

Примечание. Для некоторых тестов требуется переменная среды с именем CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY, указывающая на место расположения данных. Если внешние данные недоступны, эти тесты будут пропущены.

Выполнение и отладка сквозных тестов из Visual Studio.

Вы можете создать аргументы команды отладки Visual Studio с помощью -n параметров в TestDriver для конкретного сквозного теста:

python TestDriver.py run -n Image/QuickE2E

Из выходных данных приведенной выше команды просто скопируйте аргументы команды отладки VS в аргументы команды проекта CNTK в Visual Studio (щелкните правой кнопкой мыши проект CNTK — свойства —> свойства> конфигурации —> отладка —> аргументы команд). Начните отладку проекта CNTK.