Árvore de páginas

Como vimos anteriormente, a marcação de uma função ou classe como Teste do PROBAT é feita pela annotation [TestFixture], porém ela possui muito mais funcionalidades além dessa marcação.

Vejamos:



SUITE

A propriedade "suite" indica para qual suite o teste pertence, porém caso não seja informado através da annotation, o PROBAT adiciona o teste para o SUITE ALL.

Caso queira adicionar a outro suite, é preciso informar explicitamente essa propriedade.

TipoValor Default
character"all"

Exemplos

Executa em Modo All:

@TestFixture() // Como "ALL" é o valor default, não há necessidade de informá-lo

ou

@TestFixture(suite="all")

ou

@TestFixture("all")


Criando uma suite:

@TestFixture(suite="minha_suite")

ou

@TestFixture("minha_suite")

NOTA:

A forma não nomeada é possível para a propriedade [suite] pois ela é a primeira propriedade descrita na Annotation.

Essa forma só é possível para [suite], as demais propriedades precisam obrigatoriamente ser nomeadas.



OWNER

A propriedade "owner" indica quem é o "proprietário" do teste.

Sem informar, ele grava como Owner = "Unknown"

TipoValor Default
character"unknown"

Exemplo:

@TestFixture(owner="tlpp")


Com isso indico que o TLPP é "proprietário" desse teste.

Até o momento dessa versão, esse recurso somente registra o "proprietário" no SQLite, pois necessita a implementação para uso de filtros e agrupamentos de resultados por "proprietário".



THREAD

Indica se no momento da execução do teste o PROBAT irá abrir uma Thread exclusiva para que o teste seja executado.

TipoValor Default
character"yes"

Exemplos


Abre Thread:

@TestFixture() // Como "yes" é o valor default, não há necessidade de informá-lo

ou

@TestFixture(thread="yes")


NÃO abre Thread:

@TestFixture(thread="no")



PRIORITY

Modifica a prioridade na execução dos testes, permitindo que o desenvolvedor possa indicar a ordem de execução conforme suas necessidades.

TipoValor Default
numeric100

Exemplos

Prioridade ALTA:

@TestFixture(priority=0)


Prioridade BAIXA:

@TestFixture(priority=999)


  • Os números possíveis para informar é de 0 a 999, somente 3 caracteres.

  • Não são permitidos números negativos.


Saiba mais sobre ordem de execução dos testes em [Ordem e Prioridade]



FOLDER

A propriedade "folder" indica o diretório onde se encontra fisicamente o teste.

TipoValor Default
character""


Porém, essa informação é facultativa pois o folder pode ser detectado automaticamente caso esteja utilizando boas práticas de desenvolvimento através de namespaces, como o exemplo abaixo:

Localização física arquivoNamespace
/test/datetest.date


Caso você não queria utilizar namespaces em seu projeto, você pode contornar essa detecção automática informando explicitamente o diretório de seu teste, conforme abaixo:

@TestFixture(folder="/test/date")



TEST

A propriedade "test" se refere ao nome do teste, por boas práticas o relacionamos à funcionalidade a ser testada.

TipoValor Default
character""


Porém, essa informação é facultativa pois o nome pode ser extraído automaticamente do nome da classe e/ou função de teste.

Por exemplo, ao criarmos o teste para a classe LOGS, criaríamos então um arquivo fonte de teste com o nome: test_LOGS.
Nesse caso, o PROBAT irá extrair o nome como: "LOGS"

Porém, caso queria dar um nome diferente do extraído automaticamente, pode-se utilizar a propriedade "test".


Exemplo:

@TestFixture(test='logs_customizados')
class test_LOGS



DESCRIPTION

Informa uma descrição para o Teste caso haja a necessidade.

TipoValor Default
character""


Exemplo:

@TestFixture(description="coloque aqui seu texto explicando o teste")



TARGET

Informa qual o "alvo" do teste, na qual foi informado pelo Cross-Validation.

TipoValor Default
character""


Exemplo:

@TestFixture(target="item.1")


Veja mais detalhes desse recurso em: Cross-Validation



- RUNWITHALL | RWA

Determina se Teste será executado com suite ALL ou se sua execução é obrigatório do modo exclusivo

TipoValor Default
logical.T.


Exemplos

Executa em Modo All:

@TestFixture() // Como .T. é o valor default, não há necessidade de informá-lo

ou

@TestFixture(runWithAll=.T.)

ou

@TestFixture(rwa=.T.)


NÃO executa em Modo All:

@TestFixture(runWithAll=.F.)

ou

@TestFixture(rwa=.F.)