Como testar
Os testes de unidade e os testes de ponta a ponta fornecidos na pasta \Testes são executados como parte do fluxo de trabalho de check-in no servidor de construção nas plataformas Windows e Linux. Pode fazer os testes para a sua plataforma localmente para verificar se as alterações de código não violaram nenhum teste.
Testes de unidade
Atualmente, o teste de unidade só é suportado (e verificado) para as construções de GPU.
No Windows
Certifique-se de que configura as bibliotecas boost e variáveis ambientais, bem como o corredor de teste Boost para Visual Studio. Para instruções consulte aqui.
Reinicie Visual Studio e vá ao menu 'Teste-> Teste Definições'. Definiu a arquitetura do processador padrão para x64 e desmarque a opção 'Mantenha o motor de execução de teste em funcionamento'. Na janela test Explorer selecione Grupo por Traits (junto ao campo de pesquisa). Após uma reconstrução, deverá ver todos os testes de unidade no Test Explorer. Pode correr e depurar usando o menu de contexto.
Em Linux
Primeiro tem de instalar as bibliotecas Boost. Para instruções consulte aqui.
Em seguida, pode construir binários de teste de unidade da mesma forma que o CNTK binário, como especificado aqui. Os binários são criados na mesma pasta que o CNTK binário. Estão atualmente disponíveis os seguintes testes de unidade:
- mathtests - testes de unidade para operações matemáticas
- leitores - testes de unidade para leitores
- testes em rede - testes de unidade para operações de rede
- brainscripttests - testes de unidade para brainscript
- avaliações - testes unitários para Eval
Pode lançar cada teste de unidade executando o ficheiro binário correspondente. Também pode utilizar parâmetros de linha de comando descritos pelo Boost Unit Test Framework para controlar os testes de funcionamento e a saída de teste.
Testes de ponta a ponta
Os testes CNTK de ponta a ponta podem ser executados em Linux e Windows utilizando o Python script 'TestDriver.py' localizado em \Tests\EndToEndTests. Alternativamente, podem ser executados e depurados de Visual Studio. No seguinte, detalhamos:
- Como usar o TestDriver.py script.
- Pré-requisitos para usá TestDriver.py em Windows.
- Como executar e depurar testes de ponta a ponta do estúdio Visual.
Como usar o TestDriver.py script.
Inicie uma concha (cygWin bash shell sob Windows) e altere o diretório para a pasta Tests\EndToEndTests do repositório local CNTK (nota: c:src\CNTK em CygWin é /cygdrive/c/src/CNTK/). Comece com um dos seguintes comandos para aprender a utilização e opções do TestDriver:
python TestDriver.py -h
python TestDriver.py run -h
python TestDriver.py list -h
Para listar todos os testes disponíveis de ponta a ponta
python TestDriver.py list
Para executar um único teste, por exemplo Imagem/QuickE2E, execute
python TestDriver.py run Image/QuickE2E
Pode adicionar, por exemplo, '-d gpu' para apenas executar o teste usando uma GPU ou '-f depurar' para apenas executar o teste usando a construção de depuro. Veja python TestDriver.py run -h
todas as opções.
Para executar todos os testes das construções noturnas executar
python TestDriver.py run -t nightly
Pré-requisitos para usá TestDriver.py em Windows.
Instale a Anaconda Python 2.7 (não 3.5) daqui: https://www.continuum.io/downloads que contém a maioria dos pacotes Python populares. Em alternativa, instale Python 2.7 https://www.python.org/downloads/ e instale pacotes adicionais necessários, conforme solicitado.
Instale CygWin a partir da http://cygwin.com/install.html instalação selecione "Install from Internet" (seleção predefinitiva). IMPORTANTE: No select Packages screen type "yaml" no campo de pesquisa e expandir a secção Python. Selecione "python2-yaml: Python Lib YAML encadernações" (NÃO "python3-yaml"). Da mesma forma, escreva "python2-setuptools" no campo de pesquisa, expanda a secção Python e selecione "python2-setuptools" para instalação. Em seguida, termine a instalação.
Certifique-se de que tem o Microsoft MPI instalado (deve haver uma variável ambiental chamada MSMPI_BIN. Para isso você precisa baixar e executar o exe e não o msi)
Lança uma concha Cygwin Bash.
Executar "easy_install-2,7 pip"
Executar "pip instalar seis"
Nota: Alguns testes requerem uma variável ambiental chamada CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY apontando para onde os dados residem. Se os dados externos não estiverem disponíveis, esses testes serão ignorados.
Como correr e depurar testes de ponta a ponta a partir de Visual Studio.
Pode gerar os argumentos de comando de depuração Visual Studio utilizando as -n
opções no TestDriver para um teste específico de ponta a ponta:
python TestDriver.py run -n Image/QuickE2E
Desde a saída do comando acima, basta copiar o 'VS depurando comando args' para os argumentos de comando do projeto CNTK em Visual Studio (Clique à direita no CNTK projeto -> Propriedades -> Propriedades de Configuração -> Depuração -> Argumentos de Comando). Comece a depurar o projeto CNTK.