

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Depure e execute pacotes de teste personalizados
<a name="run-tests-custom"></a>

Depois que a [configuração necessária](set-config-custom.md) for definida, o IDT poderá executar seu pacote de teste. O runtime do pacote de teste completo depende do hardware e da composição do pacote de teste. Como referência, leva aproximadamente 30 minutos para concluir o pacote de teste do FreeRTOS completo em um Raspberry Pi 3B.

À medida que seu pacote de teste é escrito, é possível usar o IDT para executar o pacote de teste no modo de depuração para verificar seu código antes de executá-lo ou fornecê-lo aos executores de teste.

## Executar o IDT no modo de depuração
<a name="idt-debug-mode"></a>

Como os pacotes de teste dependem do IDT para interagir com dispositivos, fornecer o contexto e receber resultados, não é possível simplesmente depurar seus pacotes de teste em um IDE sem qualquer interação com o IDT. Para fazer isso, a CLI do IDT fornece o comando `debug-test-suite` que permite executar o IDT no modo de depuração. Execute o seguinte comando para visualizar as opções disponíveis para `debug-test-suite`:

```
devicetester_{{[linux | mac | win_x86-64]}} debug-test-suite -h
```

Ao executar o IDT no modo de depuração, o IDT na verdade não inicia o pacote de teste nem executa o orquestrador de testes. Em vez disso, ele interage com seu IDE para responder às solicitações feitas do pacote de teste em execução no IDE e imprime os logs no console. O IDT não atinge o tempo limite e espera para sair até ser interrompido manualmente. No modo de depuração, o IDT também não executa o orquestrador de testes e não gera nenhum arquivo de relatório. Para depurar seu pacote de teste, você deve usar seu IDE para fornecer algumas informações que o IDT normalmente obtém dos arquivos de configuração. Certifique-se de fornecer as seguintes informações:
+ Variáveis de ambiente e argumentos para cada teste. O IDT não lerá essas informações de `test.json` ou `suite.json`.
+ Argumentos para selecionar os dispositivos de recursos. O IDT não lerá essas informações de `test.json`.

Para depurar seus pacotes de teste, conclua as seguintes etapas:

1.  Crie os arquivos de ajuste de configuração necessários para executar o pacote de teste. Por exemplo, se seu pacote de teste exigir o `device.json`, `resource.json` e `user data.json` certifique-se de configurar todos eles conforme necessário. 

1. Execute o comando a seguir para colocar o IDT no modo de depuração e selecionar todos os dispositivos necessários para executar o teste.

   ```
   devicetester_[linux | mac | win_x86-64] debug-test-suite {{[options]}}
   ```

   Depois de executar esse comando, o IDT aguarda as solicitações do pacote de teste e responde a elas. O IDT também gera as variáveis de ambiente necessárias para o processo de caso do SDK do cliente de IDT. 

1. No seu IDE, use a configuração `run` ou `debug` para fazer o seguinte:

   1. Defina os valores das variáveis de ambiente geradas pelo IDT.

   1. Defina o valor de qualquer variável de ambiente ou argumento que você especificou em seu arquivo `test.json` e `suite.json`.

   1. Definir pontos de interrupção, conforme necessário.

1. Execute o pacote de teste em seu IDE. 

   É possível depurar e executar novamente o pacote de teste quantas vezes for necessário. O IDT não atinge o tempo limite no modo de depuração.

1.  Depois de concluir a depuração, interrompa o IDT para sair do modo de depuração.

## Comandos da CLI do IDT para executar testes
<a name="idt-cli-commands"></a>

As seções a seguir descrevem os comandos da CLI do IDT.

------
#### [ IDT v4.0.0 ]

**`help`**  <a name="idt-command-help"></a>
Lista as informações sobre o comando especificado.

**`list-groups`**  <a name="idt-command-list-groups"></a>
Lista os grupos em um determinado conjunto de teste.

**`list-suites`**  <a name="idt-command-list-suites"></a>
Lista os conjuntos de teste disponíveis.

**`list-supported-products`**  
Lista os produtos compatíveis para a sua versão do IDT (neste caso, versões do IDT) e versões do pacote de teste de qualificação do FreeRTOS disponíveis para a versão atual do IDT.

**`list-test-cases`**  
Lista os casos de teste em um grupo de teste. A seguinte opção é compatível:  
+ `group-id`. O grupo de teste a ser pesquisado. Esta opção é necessária e deve especificar um único grupo.

**`run-suite`**  
Executa um conjunto de testes em um grupo de dispositivos. Algumas opções comumente usadas a seguir:  
+ `suite-id`. A versão do pacote de teste a ser executada. Se não for especificado, o IDT usará a versão mais recente na pasta `tests`.
+ `group-id`. Os grupos de teste a serem executados, como uma lista separada por vírgulas. Se não for especificado, o IDT executa todos os grupos de teste no conjunto de testes.
+ `test-id`. Os casos de teste a serem executados, como uma lista separada por vírgulas. Quando especificado, `group-id` deve especificar um único grupo.
+ `pool-id`. O grupo de dispositivos a ser testado. É preciso especificar um grupo se houver vários grupos de dispositivos definidos no arquivo `device.json`.
+ `timeout-multiplier`. Configura o IDT para modificar o tempo limite de execução do teste especificado no arquivo `test.json` para um teste com um multiplicador definido pelo usuário.
+ `stop-on-first-failure`. Configura o IDT de modo a interromper a execução na primeira falha. Essa opção deve ser usada com para depurar os grupos de teste especificados `group-id`.
+ `userdata`. Define o arquivo que contém as informações de dados do usuário necessárias para executar o pacote de teste. Isto é necessário somente se `userdataRequired` estiver definido como verdadeiro no arquivo `suite.json` do pacote de teste.
Para obter mais informações sobre as opções `run-suite`, use a opção `help`:  

```
devicetester_{{[linux | mac | win_x86-64]}} run-suite -h
```

**`debug-test-suite`**  
Execute o pacote de teste no modo de depuração. Para obter mais informações, consulte [Executar o IDT no modo de depuração](#idt-debug-mode).

------