Comment tester
Les tests unitaires et les tests de bout en bout fournis dans le dossier \Tests sont exécutés dans le cadre du flux de travail de vérification sur le serveur de build sur les plateformes Windows et Linux. Vous pouvez exécuter les tests de votre plateforme localement pour vérifier que vos modifications de code n’ont rompu aucun test.
Tests unitaires
Les tests unitaires sont actuellement uniquement pris en charge (et vérifiés) pour les builds GPU.
Sur Windows
Veillez à configurer les bibliothèques Et variables d’environnement Boost ainsi que l’exécuteur de test Boost pour Visual Studio. Pour obtenir des instructions , voir ici.
Redémarrez Visual Studio et accédez au menu « Test -> Test Paramètres ». L’architecture du processeur par défaut est définie sur x64 et décochez l’option « Conserver l’exécution du moteur d’exécution de test ». Dans la fenêtre Explorateur de tests, sélectionnez Regrouper par traits (en regard du champ de recherche). Après une reconstruction, vous devez voir tous les tests unitaires dans l’Explorateur de tests. Vous pouvez exécuter et déboguer à l’aide du menu contextuel.
Sur Linux
Tout d’abord, vous devez installer les bibliothèques Boost. Pour obtenir des instructions , voir ici.
Vous pouvez ensuite créer des fichiers binaires de test unitaire de la même façon que le binaire CNTK, comme indiqué ici. Les fichiers binaires sont créés dans le même dossier que le binaire CNTK. Les tests unitaires suivants sont actuellement disponibles :
- mathtests -- tests unitaires pour les opérations mathématiques
- readertests -- tests unitaires pour les lecteurs
- networktests -- tests unitaires pour les opérations réseau
- brainscripttests -- tests unitaires pour brainscript
- evaltests -- tests unitaires pour Eval
Vous pouvez lancer chaque test unitaire en exécutant le fichier binaire correspondant. Vous pouvez également utiliser des paramètres de ligne de commande décrits par Boost Unit Test Framework pour contrôler l’exécution des tests et la sortie de test.
Tests de bout en bout
Les tests de bout en bout CNTK peuvent être exécutés sur Linux et Windows à l’aide du script Python « TestDriver.py » situé dans \Tests\EndToEndTests. Ils peuvent également être exécutés et débogués à partir de Visual Studio. Dans les détails suivants :
- Comment utiliser le script TestDriver.py.
- Conditions préalables à l’utilisation de TestDriver.py sur Windows.
- Comment exécuter et déboguer des tests de bout en bout à partir de Visual Studio.
Comment utiliser le script TestDriver.py.
Démarrez un interpréteur de commandes (Shell CygWin Bash sous Windows) et remplacez le répertoire par le dossier Tests\EndToEndTests de votre référentiel de CNTK local (remarque : c:\src\CNTK dans CygWin est /cygdrive/c/src/CNTK/). Commencez par l’une des commandes suivantes pour découvrir l’utilisation et les options du TestDriver :
python TestDriver.py -h
python TestDriver.py run -h
python TestDriver.py list -h
Pour répertorier toutes les tests de bout en bout disponibles, exécutez
python TestDriver.py list
Pour exécuter un test unique, par exemple Image/QuickE2E, exécutez
python TestDriver.py run Image/QuickE2E
Vous pouvez ajouter par exemple « -d gpu » pour exécuter uniquement le test à l’aide d’un GPU ou « -f debug » pour exécuter uniquement le test à l’aide de la build de débogage. Consultez python TestDriver.py run -h
toutes les options.
Pour exécuter tous les tests à partir des builds nocturnes, exécutez
python TestDriver.py run -t nightly
Conditions préalables à l’utilisation de TestDriver.py sur Windows.
Installez Anaconda Python 2.7 (pas 3.5) ici : https://www.continuum.io/downloads qui contient la plupart des packages Python populaires. Installez également Python 2.7 https://www.python.org/downloads/ et installez les packages supplémentaires requis comme invité.
Installez CygWin à partir de Lors de http://cygwin.com/install.html l’installation, sélectionnez « Installer à partir d’Internet » (sélection par défaut). IMPORTANT : À l’écran Sélectionner des packages, tapez « yaml » dans le champ de recherche et développez la section Python. Sélectionnez « python2-yaml : Liaisons YAML Python Lib » (PAS « python3-yaml »). De même, tapez « python2-setuptools » dans le champ de recherche, développez la section Python, puis sélectionnez « python2-setuptools » pour l’installation. Terminez ensuite l’installation.
Assurez-vous que Microsoft MPI est installé (il doit y avoir une variable d’environnement nommée MSMPI_BIN. Pour cela, vous devez télécharger et exécuter l’exe et non le msi)
Lancez un interpréteur de commandes Cygwin Bash.
Exécutez « easy_install-2.7 pip »
Exécutez « pip install six »
Remarque : Certains tests nécessitent une variable d’environnement nommée CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY pointant vers l’emplacement où se trouvent les données. Si les données externes ne sont pas disponibles, ces tests seront ignorés.
Comment exécuter et déboguer des tests de bout en bout à partir de Visual Studio.
Vous pouvez générer les arguments de commande de débogage Visual Studio à l’aide des -n
options de TestDriver pour un test de bout en bout spécifique :
python TestDriver.py run -n Image/QuickE2E
Dans la sortie de la commande ci-dessus, vous copiez simplement les arguments de commande « VS débogage » dans les arguments de commande du projet CNTK dans Visual Studio (cliquez avec le bouton droit sur CNTK projet - Propriétés de>> configuration -> Débogage -> Arguments de commande). Démarrez le débogage du projet CNTK.