Estrutura de um executor de testes

O executor de teste é a unidade de execução do fluxo de invocação. É aqui que os testes são executados.

Interfaces

Os executores de teste são definidos pela interface IRemoteTest, que fornece um método run simples para implementação que será chamado quando os testes forem executados.

Isso permite a definição mais simples de uma execução de teste. Mas, na prática, os autores de testes precisam de mais informações para criar os testes corretamente, geralmente informações de build e dispositivo. É aí que as seguintes interfaces são úteis.

Básico

Essas duas interfaces são as mais usadas atualmente, porque representam as necessidades básicas da maioria dos testes.

  • O IBuildReceiver permite que o teste receba o objeto IBuildInfo criado na etapa do provedor de build que contém todas as informações e artefatos relacionados à configuração do teste.
  • IDeviceTest permite que o TF receba o objeto ITestDevice que representa o dispositivo em teste e fornece uma API para interagir com ele.

Avançado

Há outras interfaces que permitem uma interação mais complexa entre o arquinho de testes e o executor de testes:

  • ITestFilterReceiver, que permite que o teste receba um conjunto de filtros para executar apenas determinados testes. Isso é útil para executar um subconjunto dos testes.
  • ITestCollector, que permite que um executor de testes apenas faça a simulação dos testes, em vez de realmente executá-los. Isso é útil para coletar a lista de todos os casos de teste.

Executores de teste atuais

Já existem vários executores de testes, alguns para os principais tipos de teste:

Além dos itens acima, há um grande número de executores de teste personalizados. Eles servem a propósitos especializados para alguns testes funcionais, por exemplo, o Boot Test.

Criar um novo executor de testes

Mais orientações sobre como programar um novo executor de testes estão disponíveis na seção Como criar testes.