Imprimir tempos de execução de teste e definir testes lentos com py.test


117

Estou executando testes de unidade em um servidor CI usando py.test. Os testes usam recursos externos obtidos pela rede. Às vezes, o executor de teste demora muito, fazendo com que o executor de teste seja abortado. Não posso repetir os problemas localmente.

Existe uma maneira de fazer com que py.test imprima os tempos de execução de teste (lento), de forma que definir testes problemáticos se torne mais fácil?

Respostas:


171

Não tenho certeza de que isso resolverá seu problema, mas você pode passar --durations=Npara imprimir os Ntestes mais lentos após a conclusão do conjunto de testes.

Use --durations=0para imprimir tudo.


88
Se você passar o --durations=0tempo de execução, TODOS os testes serão relatados.
oLas de

Você sabe se existe a possibilidade de adicioná-lo ao relatório de cobertura HTML gerado? Semelhante a adicionar .coveragercarquivo com o conteúdo [run] branch = Trueadiciona informações de cobertura de ramificação?
Martin Thoma

Você mesmo precisará adicionar essas informações, o pytest-html tem suporte para inserir conteúdos adicionais.
Bruno Oliveira

4
@oLas: Isso não é verdade: se os testes forem "muito rápidos", o tempo medido pode aparentemente chegar a 0 e eles ainda serão filtrados. Um limite negativo também não ajuda neste caso. Outro aborrecimento com essa abordagem é que pytest sempre imprimirá, o (0.00 durations hidden. Use -vv to show these durations.)que não faz nenhum sentido.
bluenote10

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.