Como: conjunto limites de horário para executar testes
Você pode definir limites de tempo com o qual a execução de um teste ou uma sequência de testes serão compatíveis.Talvez seja necessário fazer isso, por exemplo, se você trabalha em um laboratório de teste e precisa executar um teste para concluir em determinada hora do dia.
Outro cenário para o uso de limites de tempo é se o código não responda.Se um teste encontrar uma seção de código que não responde, o uso de um time limite de teste e um time limite de time de execução de teste permite que o teste individual terminar para que possa continuar a execução de teste com testes subseqüentes.
Há duas maneiras de conjunto limites de time:
Você define valores de tempo limite para testes e para a execução deles na configuração da execução do teste.Para obter mais informações sobre configurações de tempo de execução de teste, consulte Como: Especifique uma configuração de execução de teste e Como: Aplicar uma configuração de execução de teste. Como todas as configurações de execução, as configurações de tempo limite estão em vigor sempre que você executar testes enquanto que a configuração de execução estiver ativada.
Você pode substituir o valor Tempo limite por teste definindo uma propriedade em um teste individual.Você não pode substituir o valor de Tempo limite da execução do teste.
Você não pode definir tempos limite de teste para tipos específicos teste.Tempos limite de teste não se aplicam a testes manuais, mas os tempos limite de execução teste estão sempre em vigor, mesmo para execução de testes que contêm testes manuais.
Definir limites tempo para testes e executa teste possui esses efeitos:
Quando a duração de uma sequência de teste atinge seu valor de tempo limite, a execução de teste é interrompida, mesmo se alguns testes não tiverem sido executados.
Quando a duração de um teste individual atinge seu valor de time limite, a execução desse teste pára e o teste é marcado sistema autônomo time limite.A execução do teste continua com o teste subsequente.
Como métodos de inicialização afetam Time-outs teste
Um tempo de execução de teste pode incluir um AssemblyInitializeAttribute método e um ClassInitializeAttribute método. Se esses métodos forem definidos, elas demorará uma quantidade finita de time para concluir e, em seguida, inicia o primeiro teste na execução de teste.
A quantidade de time que usam os métodos de inicialização é adicionada à quantidade de time que usa o primeiro teste.Podemos expressar isso sistema autônomo uma fórmula que usa esses termos:
Dt = duração total
Dr = time em que um teste é executado
I = métodos de inicialização para o assembly e a classe
Tn = teste é executado em uma posição aleatória dentro de uma execução de teste
T1 = teste que é executado na primeira posição dentro de uma execução de teste
A seguir se aplicam para todos os testes após o primeiro teste:
Dt**[Tn] = Dr[Tn]**
Mas observe o seguinte caso:
Dt**[T1] = Dr[T1] + D[I]**
O primeiro teste que é executado pode ter um valor de time limite por teste atribuído.Nesse caso, o time de inicialização conta em relação ao limite de time é imposto no teste de primeiro e, portanto, pode fazer com que esse teste falhar.
Observação: |
---|
Essa limitação pode fazer com que o primeiro teste falhar.S ubsequent testes na execução de teste não são afetados. |
Se o tempo de execução de teste inclui métodos de inicialização, você poderia contornar essa limitação da seguinte maneira: Aplica a cada teste um time limite que for maior do que a soma dos tempos de execução esperados para o método de teste e qualquer método de inicialização.Você teria que fazer isso para cada teste.Como testes de unidade não garante a ordem em quais testes executados, você não pode prever qual teste será executado primeiro.
Como métodos de limpeza afetam execução de teste Time-outs
Um tempo de execução de teste pode incluir um AssemblyCleanupAttribute método e um ClassCleanupAttribute método. Após concluir esses métodos, o execução de teste extremidades.
A execução de teste pode ter um valor de time limite atribuído.A quantidade de time usado pelos métodos limpeza é adicionada à quantidade total de time usado pelo execução de teste.Em outras palavras, o time de limpeza de conta em relação ao limite de time ter impostas a execução de teste sistema autônomo um todo e, portanto, podem causar o execução de teste time limite.
Para definir o Tempo limite da execução do teste
Abra Solution Explorer.
Na pasta Itens Solution da solução, clique duas vezes no arquivo de configuração de execução de teste.
A caixa de diálogo Configuração de execução teste é aberta.
Clique em Test Timeouts.
Verificar Abort a test run if its total execution time exceeds:
Defina o valor do Tempo limite para a execução do teste, em horas, minutos e segundos.
Clique em Save e clique Close.
Para essa configuração para tenha efeito, a configuração de execução de testes que você editou deve ser a configuração de execução ativa.Para obter mais informações, consulte Como: Aplicar uma configuração de execução de teste.
Para conjunto o time limite por teste utilizando a configuração de execução de teste
Abra Solution Explorer.
Na pasta Itens Solution da solução, clique duas vezes no arquivo de configuração de execução de teste.
A caixa de diálogo Configuração de execução teste é aberta.
Clique em Test Timeouts.
Verificar Mark an individual test as failed if its execution time exceeds:
Definir o valor do Tempo limite por teste, em horas, minutos e segundos.
Clique em Save e clique Close.
Para essa configuração para tenha efeito, a configuração de execução de testes que você editou deve ser a configuração de execução ativa.Para obter mais informações, consulte Como: Aplicar uma configuração de execução de teste.
Para definir o tempo limite por teste utilizando uma propriedade de teste
em aberto o Editor de Lista de Testes ou na janela teste View.
Clique no teste e pressione F4.
A janela Propriedades abre, e as propriedades para esse teste são exibidas.
O Tempo limitepropriedade , defina o valor, em horas, minutos e segundos.
Observação: O valor do tempo limite para um teste manual é infinito.Você não pode alterar esse valor.
Para este teste somente, o valor que você conjunto substitui o valor de time limite por teste definido na configuração de execução do teste.O valor do tempo limite de execução de teste não é afetado.
Para conjunto o time limite por teste usando um atributo de um teste de unidade
Abra o arquivo de código de fonte de um teste de unidade.
localizar o atributo TestMethod do teste.
Adicione o atributo Timeout e um parâmetro que expressa o tempo limite.
O valor do time limite é expresso em milissegundos.
Exemplo (Visual translation from VPE for Csharp):
[TestMethod(), Timeout(80)] public void MyTestMethod() { // test code }
Exemplo (Microsoft Visual Basic):
<TestMethod(), Timeout(80)> _ Public Sub MyTestMethod() ' test code End Sub
Para este teste somente, o valor que você conjunto substitui o valor de time limite por teste definido na configuração de execução do teste.O valor do tempo limite de execução de teste não é afetado.