> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tela.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Criando Casos de Teste

> Todas as formas de criar um Caso de Teste: a partir de uma execução no Craft, de uma tarefa revisada na Workstation, de arquivos, manualmente, em lote e pela API

Uma boa suíte de testes é um punhado de entradas que representam o que o Canvas vai encontrar em produção, cada uma com um resultado que você conferiu. A forma mais rápida de montar uma não é escrever Casos de Teste do zero. É salvar as execuções que você já julgou: uma prévia de que gostou no **Criar**, uma tarefa que o seu time corrigiu na Workstation. Criar manualmente e soltar arquivos servem para as entradas que ainda faltam cobrir.

Para o Canvas de notas fiscais, a suíte é: uma nota fiscal limpa em PDF, uma nota escaneada, uma nota com duas moedas e um documento que não é nota fiscal. As duas primeiras saíram do Craft, a terceira da Workstation e a última foi adicionada manualmente.

## A partir de uma execução no Craft

Você acabou de clicar em **Executar Prévia** com a nota limpa e os quatro atributos estão certos. Salve a execução antes de mexer no prompt de novo.

**1. Revise o resultado ali mesmo**

Passe o mouse sobre um atributo do resultado e clique no polegar para cima ou para baixo. As marcações feitas aqui são salvas com o Caso de Teste como a primeira revisão dele, então o Caso de Teste já nasce revisado.

**2. Abra Adicionar aos Casos de Teste**

Abaixo do resultado, o card **Adicionar aos Casos de Teste** mostra um nome sugerido em **Defina um nome** e quantos atributos estão positivos, negativos e pendentes. Clique em **Salvar como Caso de Teste**.

**3. Dê um nome e descreva**

Em **Novo Caso de Teste da Prévia**, dê um título em **Defina um título** (por exemplo *Nota limpa, moeda única*) e, em **Adicione uma descrição**, diga qual cenário ele cobre. A descrição fica guardada como uma nota na execução. Clique em **Criar**.

![Craft do Canvas de notas fiscais depois de Executar Prévia, com o card Adicionar aos Casos de Teste abaixo do resultado](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/test-cases/craft-preview.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=fa7d387cc4f03480d44e51ddcae43406)

![Diálogo Novo Caso de Teste da Prévia com título e descrição](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/test-cases/preview-dialog.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=3d89a82d9dfc8ca9e0cfbe3d11621552)

O menu `…` do painel **Entradas** também tem **Criar Caso de Teste**, que abre o mesmo diálogo para as entradas e o resultado atuais. O Caso de Teste guarda as variáveis, os arquivos e as mensagens de chat da prévia, e mostra **Adicionado Manualmente** como origem.

> [!TIP]
>
> O painel **Entradas** tem um seletor **Testes** / **Novo**. **Testes** lista os seus Casos de Teste, para você executar o prompt no Craft com as entradas de um Caso de Teste existente em vez de enviar a nota de novo. **Detalhes** abre os arquivos daquele Caso de Teste.

### Em Workflows

Depois que uma execução de Workflow termina no Craft, o mesmo card **Adicionar aos Casos de Teste** aparece no painel de resultado. Ele salva as Entradas da execução, incluindo arquivos, e a saída de cada etapa. Veja [Executando, testando e publicando](https://docs.tela.com/pt/workflow/running-testing-and-publishing.md#casos-de-teste).

### Em Agentes

No painel **Teste seu agente**, clique em **Revisar** depois de uma execução para salvá-la como caso de teste e abri-la na experiência **Testar**. Veja [Testando um Agente](https://docs.tela.com/pt/agent/testing.md#criando-um-caso-de-teste).

## A partir de uma tarefa revisada na Workstation

Uma tarefa que o seu time revisou em um [App da Workstation](https://docs.tela.com/pt/workstation/creating-apps.md) é o melhor Caso de Teste que existe: um documento real e uma saída que uma pessoa conferiu e corrigiu. Suponha que um revisor abriu a nota com duas moedas, encontrou `total_amount` na moeda errada e corrigiu antes de aprovar.

* Logo depois de **Aprovar e Continuar**, o Tela sugere criar um Caso de Teste a partir da tarefa. Marque **Parar sugestões de Caso de Teste por hoje.** para pausar a sugestão por um dia.
* Depois, abra a tarefa aprovada e escolha **Criar Caso de Teste** no menu `…`. A opção só aparece depois que a tarefa é aprovada.

O diálogo **Criar um Caso de Teste da Tarefa N** pede um **Título do Caso de Teste** e, quando a tarefa foi corrigida, que você **Explique por que você fez as correções**. Clique em **Criar**.

![Diálogo de revisão da Workstation com o menu … aberto, mostrando Desfazer Aprovação, Criar Caso de Teste e Excluir Tarefa](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/test-cases/workstation-menu.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=c705784c5556ef245cd0480ac5e805c8)

![Diálogo Criar um Caso de Teste da Tarefa com título e explicação das correções](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/test-cases/workstation-dialog.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=9643f9100f1942fca5599080471fbd8d)

O que o Tela salva:

* Os arquivos e variáveis da tarefa viram as entradas do Caso de Teste.
* Cada atributo que o revisor não tocou é salvo como **Resposta Esperada** e marcado como **Bom**.
* Para cada atributo que o revisor editou, o valor original é salvo como **Resposta Errada** e o valor corrigido como **Resposta Esperada**, e o atributo é marcado como **Ruim** na execução original.
* A sua explicação fica guardada como uma nota na execução.

O Caso de Teste aparece na experiência **Testar** do Canvas por trás do App com a origem **Produção**. Tarefas que falharam não podem virar Casos de Teste e, com **Aprovação Necessária** ativa nas configurações do App, as tarefas precisam ser aprovadas antes. Veja [Transformando uma tarefa em Caso de Teste](https://docs.tela.com/pt/workstation/workstation.md#transformando-uma-tarefa-em-caso-de-teste).

## A partir de arquivos

Para cobrir uma entrada que você ainda não executou, solte o arquivo na experiência **Testar**, ou clique em **Solte arquivos aqui** / **navegue no seu computador**.

* Quando o Canvas tem uma única variável, cada arquivo vira um Caso de Teste com o nome do arquivo, e roda imediatamente.
* Quando o Canvas tem várias variáveis, ou você selecionou vários arquivos para um Caso de Teste, abre o diálogo **Criar Casos de Teste**. Para cada Caso de Teste, escolha um nome e use **Atribuir arquivo** em cada variável. **Adicionar outro caso de teste** adiciona uma linha; **Criar N casos de teste** confirma. Todo Caso de Teste precisa ter todas as variáveis obrigatórias atribuídas.

Até 100 arquivos por vez. Tipos não suportados são pulados com um aviso; veja [Formatos de arquivo suportados](https://docs.tela.com/pt/supported-file-formats.md). Um Caso de Teste criado assim ainda não tem revisões: execute e depois revise.

> [!TIP]
>
> Casos de Teste sem título ganham um título gerado a partir do prompt e da entrada quando a primeira execução termina. Renomeie na tela de detalhe com **Editar Nome** se a sugestão não servir.

## Manualmente

Clique em **Novo caso de teste** (*Criar manualmente*). O diálogo tem um **Nome** (preenchido como *Caso de Teste Sem Título #N*) e, em **Conteúdo**, um campo por variável onde você escreve texto ou anexa um documento. Variáveis obrigatórias precisam ser preenchidas. Depois:

* **Finalizar e Executar** cria o Caso de Teste e o executa contra a versão que você está vendo.
* **Finalizar e Criar Novo** cria e abre um diálogo vazio para o próximo.

Foi assim que o caso *Não é nota fiscal* foi adicionado: um pedido de compra anexado em `invoice`, para verificar que o Canvas não inventa um `total_amount`.

![Diálogo Novo caso de teste com o nome e a variável invoice com um PDF anexado](https://mintcdn.com/meistrari/M2w7BduKZAFA1Sbx/images/pt/test-cases/new-test-dialog.png?fit=max\&auto=format\&n=M2w7BduKZAFA1Sbx\&q=85\&s=604f26a5114332e74a5d791d26b7b758)

Para mudar as entradas de um Caso de Teste existente, abra-o e escolha **Editar Entradas** no menu `…`; **Salvar e Executar** salva e executa de novo. **Duplicar**, no menu da linha na tabela ou no diálogo de reexecução, cria uma cópia chamada *(Copy)* com as mesmas entradas e sem execuções, útil para uma variante de um caso existente.

## Pela API

`POST /test-case` cria um Caso de Teste, ou vários quando o corpo é um array. Os campos obrigatórios são `promptId` (o ID do Canvas em **Conectar via API**), `messages` (um array vazio para um Canvas sem chat) e `variablesRichContent`. Entradas de texto vão em `variables`; arquivos vão em `files`, cada um apontando para um arquivo no seu Vault e para a variável que ele preenche.

```sh cURL theme={null}
curl -X POST https://api.tela.com/test-case \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $TELA_API_KEY" \
    -d '[
        {
            "promptId": "5f0c1a2e-8b7d-4c3a-9e1f-2d4b6a8c0e12",
            "title": "Clean invoice, single currency",
            "messages": [],
            "variables": {},
            "variablesRichContent": {},
            "files": [{
                "index": 0,
                "name": "acme-2024-0412.pdf",
                "mimeType": "application/pdf",
                "vaultUrl": "vault://invoices/acme-2024-0412.pdf",
                "variableName": "invoice",
                "url": "https://files.example.com/acme-2024-0412.pdf"
            }],
            "metadata": { "source": "test-case" }
        },
        {
            "promptId": "5f0c1a2e-8b7d-4c3a-9e1f-2d4b6a8c0e12",
            "title": "Not an invoice (purchase order)",
            "messages": [],
            "variables": { "invoice": "PURCHASE ORDER PO-2291 ... (texto do documento)" },
            "variablesRichContent": { "invoice": "PURCHASE ORDER PO-2291 ... (texto do documento)" },
            "metadata": { "source": "test-case" }
        }
    ]'
```

Criar um Caso de Teste não o executa. Chame [Run a test case](https://docs.tela.com/api-reference/test-case/post-test-case-id-run.md) com o `promptVersionId` para executar, ou [Run many test cases](https://docs.tela.com/api-reference/test-case/post-test-case-run-all.md). O schema completo, incluindo `expectedOutput`, está em [Create Test Cases](https://docs.tela.com/api-reference/test-case/create.md); `PATCH /test-case/{id}` [atualiza](https://docs.tela.com/api-reference/test-case/update.md) um Caso de Teste e `DELETE` [remove](https://docs.tela.com/api-reference/test-case/delete.md).

> [!NOTE]
>
> Os SDKs do Tela cobrem a Completion API. Os endpoints de Caso de Teste são chamados por HTTP, em camelCase como acima.

## Organizando com categorias

Categorias agrupam Casos de Teste para você executar e ler um subconjunto: `scanned`, `multi-currency`, `regression`. Abra um Caso de Teste e use o seletor de categorias ao lado do título para **Atribuir categoria** ou **Criar categoria** com um nome e uma cor. Na tabela, a coluna **Categorias** as mostra e o filtro **Categorias** restringe a lista; com um filtro ativo, o botão de execução vira **Rodar Filtrados**.

As categorias pertencem ao Canvas. Pela API, crie-as com [`POST /test-case-tags`](https://docs.tela.com/api-reference/test-case-tag/post-test-case-tags), atribua com [`POST /test-case/{id}/tags`](https://docs.tela.com/api-reference/test-case-tag/post-test-case-id-tags) ou em lote com [`POST /test-case/bulk-add-tags`](https://docs.tela.com/api-reference/test-case-tag/post-test-case-bulk-add-tags), e passe `tagIds` em `filters` de [Run many test cases](https://docs.tela.com/api-reference/test-case/post-test-case-run-all.md) para executar só aqueles.

> [!NOTE]
>
> Categorias de Caso de Teste não são as [Tags](https://docs.tela.com/pt/tags.md) guardadas com as execuções para o Usage. São coisas separadas.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.