Coletor de relatórios de bugs

public class BugreportCollector
extends Object implements ITestInvocationListener

java.lang.Object
   ↳ com.android.tradefed.result.BugreportCollector


Um ITestInvocationListener de passagem que coleta relatórios de bugs quando eventos configuráveis ocorrem e chama ITestInvocationListener#testLog nos filhos depois que cada relatório de bug é coletado.

Comportamentos: (FIXME: finish this)

  • Capturar após cada caso de teste com falha
  • Capturar depois de cada caso de teste
  • Capturar após cada teste de caso com falha
  • Gravar

Resumo

Classes aninhadas

class BugreportCollector.Predicate

Um predicado completo que descreve quando capturar um bugreport. 

interface BugreportCollector.SubPredicate

 

Campos

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

Um predicado predefinido que é acionado após cada teste com falha

public static final BugreportCollector.Predicate AT_START

Um predicado predefinido que é acionado quando a primeira invocação começa

Construtores públicos

BugreportCollector(ITestInvocationListener listener, ITestDevice testDevice)

Métodos públicos

void addPredicate(BugreportCollector.Predicate p)
void blockUntilIdle()

Bloqueia até que o coletor não colete mais relatórios de bugs.

TestSummary getSummary()

Permite que o InvocationListener retorne um resumo.

void invocationEnded(long elapsedTime)

Informa que a invocação foi encerrada, seja com sucesso ou devido a alguma condição de erro.

void invocationFailed(Throwable cause)

Informa uma invocação incompleta devido a alguma condição de erro.

void invocationStarted(IInvocationContext context)

Informa o início da invocação do teste.

void setAsynchronous(boolean asynchronous)

Defina se a coleta de relatórios de bugs precisa coletar o relatório em uma linha de execução diferente (asynchronous = true) ou bloqueie o autor da chamada até que o relatório seja capturado (asynchronous = false).

void setDescriptiveName(String name)

Define o nome descritivo a ser usado ao registrar relatórios de bugs.

void setDeviceWaitTime(int waitTime)

Define o tempo (em segundos) de espera para que o dispositivo esteja on-line antes de tentar capturar um bugreport.

void testAssumptionFailure(TestDescription test, String trace)

Chamada quando um teste atômico sinaliza que assume uma condição falsa

void testEnded(TestDescription test, testMetrics)

Informa o término da execução de um caso de teste individual.

void testFailed(TestDescription test, String trace)

Informa a falha de um caso de teste individual.

void testIgnored(TestDescription test)

Chamado quando um teste não é executado, geralmente porque um método de teste é anotado com org.junit.Ignore.

void testLog(String dataName, LogDataType dataType, InputStreamSource dataStream)

Fornece os dados de registro ou depuração associados à invocação do teste.

void testRunEnded(long elapsedTime, runMetrics)

Informa o fim da execução do teste.

void testRunFailed(String errorMessage)

A execução do teste de relatórios não foi concluída devido a um erro fatal.

void testRunStarted(String runName, int testCount)

Informa o início de uma execução de teste.

void testRunStopped(long elapsedTime)

A execução do teste de relatórios foi interrompida antes da conclusão devido a uma solicitação do usuário.

void testStarted(TestDescription test)

Informa o início de um caso de teste individual.

Campos

AFTER_FAILED_TESTCASES

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

Um predicado predefinido que é acionado após cada teste com falha

AT_INÍCIO

public static final BugreportCollector.Predicate AT_START

Um predicado predefinido que é acionado quando a primeira invocação começa

Construtores públicos

Coletor de relatórios de bugs

public BugreportCollector (ITestInvocationListener listener, 
                ITestDevice testDevice)

Parâmetros
listener ITestInvocationListener

testDevice ITestDevice

Métodos públicos

addPredicate

public void addPredicate (BugreportCollector.Predicate p)

Parâmetros
p BugreportCollector.Predicate

blockUntilIdle

public void blockUntilIdle ()

Bloqueia até que o coletor não colete mais relatórios de bugs. Se o coletor não estiver coletando ativamente um relatório de bug, retorne imediatamente

getSummary

public TestSummary getSummary ()

Permite que o InvocationListener retorne um resumo.

Retorna
TestSummary Um TestSummary que resume a execução ou nulo

invocationEnded

public void invocationEnded (long elapsedTime)

Informa que a invocação foi encerrada, seja com sucesso ou devido a alguma condição de erro.

Será chamado automaticamente pela estrutura da TradeFederation.

Parâmetros
elapsedTime long: o tempo decorrido da invocação em ms

invocationFailed

public void invocationFailed (Throwable cause)

Informa uma invocação incompleta devido a alguma condição de erro.

Será chamado automaticamente pelo framework TradeFederation.

Parâmetros
cause Throwable: a causa Throwable da falha

invocationStarted

public void invocationStarted (IInvocationContext context)

Informa o início da invocação do teste.

Será chamado automaticamente pelo framework TradeFederation. Os repórteres precisam substituir esse método para oferecer suporte a vários dispositivos.

Parâmetros
context IInvocationContext: informações sobre a invocação

setAsynchronous

public void setAsynchronous (boolean asynchronous)

Defina se a coleta de relatórios de bugs precisa coletar o relatório em uma linha de execução diferente (asynchronous = true) ou bloqueie o autor da chamada até que o relatório seja capturado (asynchronous = false).

Parâmetros
asynchronous boolean

setDescriptiveName

public void setDescriptiveName (String name)

Defina o nome descritivo que será usado ao gravar relatórios de bugs. Se null, BugreportCollector vai retornar ao comportamento padrão de serialização do nome do evento que causou a coleta do bugreport.

Parâmetros
name String

setDeviceWaitTime

public void setDeviceWaitTime (int waitTime)

Define o tempo (em segundos) de espera para que o dispositivo esteja on-line antes de tentar capturar um bugreport. Se for negativo, nenhuma verificação será realizada. Qualquer DeviceNotAvailableException encontrado durante essa verificação será registrado e ignorado.

Parâmetros
waitTime int

testAssumptionFailure

public void testAssumptionFailure (TestDescription test, 
                String trace)

Chamada quando um teste atômico sinaliza que assume uma condição falsa

Parâmetros
test TestDescription: identifica o teste

trace String: stack trace de falha

testEnded

public void testEnded (TestDescription test, 
                 testMetrics)

Informa o final da execução de um caso de teste individual.

Se testFailed(TestDescription, FailureDescription) não foi invocado, o teste foi aprovado. Também retorna as métricas de chave/valor que podem ter sido emitidas durante a execução do caso de teste.

Parâmetros
test TestDescription: identifica o teste

testMetrics : uma ERROR(/Map) das métricas emitidas

testFailed

public void testFailed (TestDescription test, 
                String trace)

Informa a falha de um caso de teste individual.

Será chamado entre testStarted e testEnded.

Parâmetros
test TestDescription: identifica o teste

trace String: stack trace de falha

testIgnored

public void testIgnored (TestDescription test)

É chamado quando um teste não é executado, geralmente porque um método de teste é anotado com org.junit.Ignore.

Parâmetros
test TestDescription: identifica o teste.

testLog

public void testLog (String dataName, 
                LogDataType dataType, 
                InputStreamSource dataStream)

Fornece os dados de registro ou depuração associados à invocação do teste.

Precisa ser chamado antes de ERROR(/ITestInvocationListener#invocationFailed(Throwable)) ou ERROR(/ITestInvocationListener#invocationEnded(long)).

O framework TradeFederation vai chamar esse método automaticamente, fornecendo o registro do host e, se aplicável, o logcat do dispositivo.

Parâmetros
dataName String: um nome descritivo de String dos dados. Por exemplo, "device_logcat". Observação dataName pode não ser exclusivo por invocação. Ou seja, os implementadores precisam ser capazes de processar várias chamadas com o mesmo dataName.

dataType LogDataType: o LogDataType dos dados

dataStream InputStreamSource: o InputStreamSource dos dados. Os implementadores precisam chamar createInputStream para começar a ler os dados e garantir que o InputStream resultante seja fechado quando concluído. Os autores da chamada precisam garantir que a origem dos dados permaneça presente e acessível até que o método testLog seja concluído.

testRunEnded

public void testRunEnded (long elapsedTime, 
                 runMetrics)

Informa o fim da execução do teste.

Parâmetros
elapsedTime long: tempo decorrido informado pelo dispositivo, em milissegundos.

runMetrics : pares de chave-valor informados no final de um teste.

testRunFailed

public void testRunFailed (String errorMessage)

A execução do teste de relatórios não foi concluída devido a um erro fatal.

Parâmetros
errorMessage String: String descrevendo o motivo da falha na execução.

testRunStarted

public void testRunStarted (String runName, 
                int testCount)

Informa o início de uma execução de teste.

Parâmetros
runName String: o nome da execução do teste

testCount int: número total de testes na execução do teste

testRunStopped

public void testRunStopped (long elapsedTime)

Informa que a execução do teste foi interrompida antes da conclusão devido a uma solicitação do usuário.

TODO: atualmente não usado, considere remover

Parâmetros
elapsedTime long: tempo decorrido informado pelo dispositivo, em milissegundos.

testStarted

public void testStarted (TestDescription test)

Informa o início de um caso de teste individual. Interface mais antiga, use testStarted(com.android.tradefed.result.TestDescription) sempre que possível.

Parâmetros
test TestDescription: identifica o teste