Compartilhar via


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

  1. Abra Solution Explorer.

  2. 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.

  3. Clique em Test Timeouts.

  4. Verificar Abort a test run if its total execution time exceeds:

  5. Defina o valor do Tempo limite para a execução do teste, em horas, minutos e segundos.

  6. 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

  1. Abra Solution Explorer.

  2. 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.

  3. Clique em Test Timeouts.

  4. Verificar Mark an individual test as failed if its execution time exceeds:

  5. Definir o valor do Tempo limite por teste, em horas, minutos e segundos.

  6. 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

  1. em aberto o Editor de Lista de Testes ou na janela teste View.

  2. Clique no teste e pressione F4.

    A janela Propriedades abre, e as propriedades para esse teste são exibidas.

  3. 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

  1. Abra o arquivo de código de fonte de um teste de unidade.

  2. localizar o atributo TestMethod do teste.

  3. 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.

Consulte também

Tarefas

Como: Especifique uma configuração de execução de teste

Como: Aplicar uma configuração de execução de teste