Pular para o conteúdo principal

PROBAT — engine de testes do tlppCore

O PROBAT é o conjunto de ferramentas nativas do tlppCore para criação e execução de testes em programas TLPP ou AdvPL — testes unitários, funcionais e integrados, com cobertura de código, histórico de execuções, suporte a TDD e integração com esteiras de CI/CD.

O nome vem do latim e remete a prova / teste. A ferramenta nasceu em 2017 como motor de testes unitários do próprio tlppCore e evoluiu para um motor de testes completo — REST, testes integrados, GUI nativa e automação DevOps — até ser promovida a produto expedido no tlpp.rpo.

Os exemplos desta seção vivem em totvs/tlpp-probat-samples.

Disponibilidade
  • Expedido no pacote oficial do tlppCore (tlpp.rpo) a partir do AppServer Harpia 20.3.1.x
  • Funciona somente a partir do binário 7.00.170117A (Lobo-Guará)
  • Para testar fontes AdvPL, o teste deve obrigatoriamente ser escrito em TLPP
  • Não possui recursos para testes de interface (telas)

O que o PROBAT oferece

RecursoO que resolve
Testes unitários, funcionais e integradosValida se o software cumpre as funcionalidades projetadas
Cobertura de códigoMostra se o plano de testes de fato percorre todo o código
Histórico em bancoResultados persistidos em SQLite (ou DBAccess) para consulta e comparação
TDDPermite desenvolver guiado por testes (Test-driven development)
AutomaçãoEsteira de testes disparada por scripts, com captura de eventos externos
Export de resultadosXML no formato JUnit — consumível por Jenkins, GitLab CI, GitHub Actions etc.
Interface gráficaGUI nativa via tlpp.probat.gui() para executar e consultar históricos

Verificando a instalação

Antes de começar, confirme se o PROBAT está disponível no seu ambiente:

function sampleIsProbat()

local jModule

if ( tlpp.module( 'PROBAT', @jModule ) )
conout( 'Ferramenta: ' + jModule['module'] )
conout( 'Instalado?: ' + if( jModule['linked'], 'sim', 'nao' ) )
conout( 'Versão....: ' + jModule['version'] )
else
conout( ' >> Ferramenta não instalada <<' )
endif

return Nil

Estrutura do repositório de exemplos

PastaConteúdo
ini/INIs do AppServer com a seção [PROBAT] configurada — ver Configuração
run/Scripts de automação e o main.prw — ver Automação
src/Fontes "de produção" que serão testados (no seu projeto, é o código oficial)
test/Implementações dos testes com a sintaxe do PROBAT, organizadas por tema

Trilha sugerida

Uma ordem só — do setup à esteira. O menu lateral espelha essa sequência.

EtapaO que você aprendeComece em
1 — ConfiguraçãoDiretórios, seção [PROBAT] no INI, config por códigoConfiguração
2 — Annotations@TestFixture, @Test, setups e teardownsAnnotations
3 — Função e classeAs duas formas de escrever testesFunção e classe
4 — AssertsCatálogo de verificaçõesAsserts
5 — ControleSkip, Error Log, suites, thread e prioridadePulando testes
6 — CoberturaPercentual, export e validaçãoCobertura
7 — ExecuçãoDiscovery, run(), export JUnit e históricoExecução e resultados
8 — CenáriosAPI REST, banco de dados e TDDAPI REST
9 — AutomaçãoScripts, eventos externos e CI/CDAutomação

Próximo passo: Configuração · Exemplos no GitHub

Referências oficiais