Как тестировать
Модульные тесты и сквозные тесты, предоставляемые в папке \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.
Установите Anaconda Python 2.7 (не 3.5) здесь: https://www.continuum.io/downloads который содержит большинство популярных пакетов Python. Кроме того, установите Python 2.7 https://www.python.org/downloads/ и установите необходимые дополнительные пакеты по запросу.
Установите CygWin из http://cygwin.com/install.html программы "Во время установки" выберите "Установить из Интернета" (по умолчанию). ВАЖНО! На экране выбора пакетов в поле поиска введите "yaml" и разверните раздел Python. Выберите "python2-yaml: Python привязки YAML lib" (НЕ "python3-yaml"). Аналогичным образом введите python2-setuptools в поле поиска, разверните раздел Python и выберите python2-setuptools для установки. Затем завершите установку.
Убедитесь, что установлен microsoft MPI (должна быть переменная среды с именем MSMPI_BIN. Для этого необходимо скачать и запустить exe-файл , а не msi)
Запустите оболочку Cygwin Bash.
Запустите "easy_install-2.7 pip"
Запуск "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.