Árvore de páginas

Os testes escritos com PROBAT são localizados no RPO através das funções de Reflection, portanto a ordem de retorno das Reflections incidirá sobre a ordem de execução dos testes, pois será também a ordem de gravação na tabela PROBAT_CONFIG_ROUTINES no SQLite.

Se algum dia a lógica da ordem de retorno das Reflections mudar, irá mudar também a ordem para o PROBAT.

Ou seja, se não for usado nenhum outro recurso do PROBAT, essa será a ordem de execução dos testes.

Porém, ainda existem alguns recursos que podem ser usados para mudar a ordem de execução conforme convém, sendo:

  • [TestFixture >> Priority] - Mudar a prioridade do Teste;
  • [TestFixture >> Thread] - Informar que o Teste não deve ser em nova Thread.


1 - Prioridade

Esse recurso especificamente é usado somente para mudar a ordem de execução dos testes, e é muito simples usar.

Os valores informados em [TestFixture >> Priority] devem ser:

  • Ser do tipo [numeric].

  • Estar entre 0 e 999, ou seja, até 3 dígitos.

  • Não podem ser negativos.

Para isso, basta usar a propriedade [priority] da annotation [TestFixture], vejamos:


@TestFixture()
user function teste_1()


@TestFixture()
user function teste_2()


@TestFixture()
user function teste_3()

Nesse caso, como todos os testes possuem a mesma prioridade (100 é o valor default), serão executados na seguinte ordem:

1o. - teste_1()
2o. - teste_2()
3o. - teste_3()

Agora, vamos aplicar a prioridade e vejamos o que acontece:


@TestFixture()
user function teste_1()


@TestFixture(priority=999)
user function teste_2()


@TestFixture(priority=1)
user function teste_3()

Teremos então a seguinte ordem:

1o. - teste_3()
2o. - teste_1()
3o. - teste_2()


2 - Thread

Embora esse recurso não tem a finalidade de organizar a ordem de execução dos testes, na prática acaba alterando pois todos os testes "marcados" para não abrir uma Thread destacada serão executados ao final para amenizar o risco de ocorrer um error.log e derrubar as demais execuções.

Portanto, não é aconselhado usar esse recurso para manipular a ordem, mas é bom saber que os testes com @TestFixture[thread="no"] sejam lançadas ao final de todos os testes.

Saiba mais sobre esse recurso em (Execução em thread).