pytest-timeout

Tela Software:
pytest-timeout
Detalhes de Software:
Versão: 0.3
Data de upload: 20 Feb 15
Revelador: Floris Bruynooghe
Licença: Livre
Popularidade: 7

Rating: nan/5 (Total Votes: 0)

pytest-timeout é um plugin para py.test que terminará testes depois de um certo tempo de espera & nbsp;. Ao fazer isso você vai ter um despejo de pilha de todas as threads em execução no momento. Isso é útil quando, por exemplo, execução de testes no âmbito de um servidor de integração contínua (CI).
Uso
Instale via:
pip instalar pytest-timeout
e, em seguida, permitir que o plugin, a partir da linha de comando:
py.test -p tempo limite
ou mais convenientemente a partir de dentro do módulo de teste ou conftest.py:
pytest_plugins = 'tempo de espera'
Você pode alterar o tempo limite usando o parâmetro --timeout que define o tempo limite em segundos.
Como funciona
Este plugin funciona em uma de duas maneiras. Se o sistema suporta o sinal SIGALRM um alarme será marcada quando os testes começa e cancelado quando termina. Se o alarme expirar durante o ensaio, o manipulador de sinal usará pytest.fail () para interromper o teste depois de ter esvaziado a pilha de quaisquer outros threads em execução para stderr.
Se o sistema não suporta SIGALRM ou a opção --nosigalrm foi utilizado, então, um segmento timer será usado em seu lugar. Uma vez mais, se este temporizador não for cancelada antes que ela expire ele vai despejar a pilha de todos os segmentos para stderr antes de terminar todo o processo py.test usando os._exit (1).
A desvantagem do método é que SIGALRM o sinal é usado por a estrutura de teste. Se este sinal é utilizado pelo código sob teste que você vai precisar usar a opção --nosigalrm. A limitação do segmento timer, porém, é a sobrecarga extra de criar uma lista de discussão para cada teste executado e o fato de que depois de um tempo limite de todo o processo está parado e não há mais testes são executados.

O que é novo nesta versão:.

  • Adicionado a variável de ambiente PYTEST_TIMEOUT como uma forma de especificar o tempo de espera (fecha a edição # 2)
  • Mais flexível argumento marcador parsing:. Agora, você pode especificar o método que utiliza um argumento posicional
  • O plugin já está ativado por padrão. Não há mais a necessidade de especificar timeout = 0 no arquivo de configuração ou na linha de comando, simplesmente para que um marcador iria funcionar.

O que é novo na versão 0.2:

  • Adicionar um marcador para modificar o tempo de espera usando umapytest .timeout sintaxe (N), graças a Laurant Brack para o código inicial.
  • Permitir o marcador de tempo limite para selecionar o método de tempo limite usando o argumento método palavra-chave.
  • Mudar o nome da opção --nosigalrm para --method = linha para apoio futuro prova para eventlet e GEvent. Graças a Ronny Pfannschmidt pela dica.
  • Adicionar itens de tempo limite e timeout_method para o arquivo de configuração que você pode ativar e configurar o plugin usando o arquivo ini. Graças a Holger Krekel e Ronny Pfannschmidt para as dicas.
  • Testado (e fixa) para Python 2.6, 2.7 e 3.2.

Requisitos :

  • Python
  • py.test

Programas semelhantes

nose-performance
nose-performance

20 Feb 15

pagerunit
pagerunit

11 May 15

gprof2dot.py
gprof2dot.py

3 Jun 15

Zato
Zato

20 Feb 15

Comentário para pytest-timeout

Comentários não encontrado
Adicionar comentário
Ligue imagens!