Compartilhar via


Como testar

Os testes de unidade e os testes de ponta a ponta fornecidos na pasta \Tests são executados como parte do fluxo de trabalho de check-in no servidor de build nas plataformas Windows e Linux. Você pode executar os testes para sua plataforma localmente para verificar se as alterações de código não interromperam nenhum teste.

Testes de unidade

Atualmente, há suporte apenas para teste de unidade (e verificado) para builds de GPU.

No Windows

Certifique-se de configurar as bibliotecas boost e variáveis de ambiente, bem como o executor de teste boost para Visual Studio. Para obter instruções , confira aqui.

Reinicie Visual Studio e vá para o menu "Testar --> Testar Configurações". Defina a arquitetura padrão do processador como x64 e desmarque a opção "Manter o Mecanismo de Execução de Teste em Execução". Na janela Do Gerenciador de Testes, selecione Agrupar por Características (ao lado do campo de pesquisa). Após uma recompilação, você deverá ver todos os testes de unidade no Gerenciador de Testes. Você pode executar e depurar usando o menu de contexto.

No Linux

Primeiro, você precisa instalar as bibliotecas do Boost. Para obter instruções , confira aqui.

Em seguida, você pode criar binários de teste de unidade da mesma forma que o binário CNTK, conforme especificado aqui. Os binários são criados na mesma pasta que o binário CNTK. Os seguintes testes de unidade estão disponíveis no momento:

  • mathtests -- testes de unidade para operações matemáticas
  • readertests – testes de unidade para leitores
  • networktests – testes de unidade para operações de rede
  • brainscripttests - testes de unidade para brainscript
  • evaltests -- testes de unidade para Eval

Você pode iniciar cada teste de unidade executando o arquivo binário correspondente. Você também pode usar parâmetros de linha de comando descritos pelo Boost Unit Test Framework para controlar a execução de testes e a saída de teste.

Testes de ponta a ponta

Os testes de ponta a ponta CNTK podem ser executados no Linux e Windows usando o script Python 'TestDriver.py' localizado em \Tests\EndToEndTests. Como alternativa, eles podem ser executados e depurados de Visual Studio. No seguinte, detalhamos:

  • Como usar o script TestDriver.py.
  • Pré-requisitos para usar TestDriver.py em Windows.
  • Como executar e depurar testes de ponta a ponta do Visual Studio.

Como usar o script TestDriver.py.

Inicie um shell (shell do CygWin Bash em Windows) e altere o diretório para a pasta Tests\EndToEndTests do repositório de CNTK local (observação: c:\src\CNTK em CygWin é /cygdrive/c/src/CNTK/). Comece com um dos seguintes comandos para aprender o uso e as opções do TestDriver:

python TestDriver.py -h

python TestDriver.py run -h

python TestDriver.py list -h

Para listar todos os testes de ponta a ponta disponíveis, execute

python TestDriver.py list

Para executar um único teste, por exemplo, Image/QuickE2E, execute

python TestDriver.py run Image/QuickE2E

Você pode adicionar, por exemplo, '-d gpu' para executar apenas o teste usando uma GPU ou '-f debug' para executar apenas o teste usando o build de depuração. Confira python TestDriver.py run -h todas as opções.

Para executar todos os testes dos builds noturnos executados

python TestDriver.py run -t nightly

Pré-requisitos para usar TestDriver.py em Windows.

  1. Instale o Anaconda Python 2.7 (não 3.5) aqui: https://www.continuum.io/downloads que contém a maioria dos pacotes populares do Python. Como alternativa, instale o Python 2.7 https://www.python.org/downloads/ e instale os pacotes adicionais necessários conforme solicitado.

  2. Instale o CygWin durante http://cygwin.com/install.html a instalação, selecione "Instalar da Internet" (seleção padrão). IMPORTANTE: em Selecionar Pacotes, digite "yaml" no campo de pesquisa e expanda a seção Python. Selecione "python2-yaml: associações YAML do Python Lib" (NÃO "python3-yaml"). Da mesma forma, digite "python2-setuptools" no campo de pesquisa, expanda a seção Python e selecione "python2-setuptools" para instalação. Em seguida, conclua a instalação.

  3. Verifique se você tem o Microsoft MPI instalado (deve haver uma variável de ambiente chamada MSMPI_BIN. Para isso, você precisa baixar e executar o exe e não o msi)

  4. Inicie um shell Cygwin Bash.

  5. Execute "easy_install-2.7 pip"

  6. Executar "pip install six"

Observação: alguns testes exigem uma variável de ambiente 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 executar e depurar testes de ponta a ponta de Visual Studio.

Você pode gerar os argumentos de comando de depuração Visual Studio usando as -n opções no TestDriver para um teste de ponta a ponta específico:

python TestDriver.py run -n Image/QuickE2E

Na saída do comando acima, basta copiar os 'args de comando de depuração vs' para os argumentos de comando do projeto CNTK em Visual Studio (clique com o botão direito do mouse em CNTK projeto -> Propriedades -> Propriedades de Configuração -> Depuração -> Argumentos de Comando). Comece a depurar o projeto CNTK.