Estrutura UnitTest - Tratamento de Sinais

O manuseio mais eficiente de control-C durante a execução de um teste é fornecido pela opção de linha de comando -c / - catch para unittest, junto com o catchbreakparâmetro. Com o comportamento catch break habilitado, o control-C permitirá que o teste atualmente em execução seja concluído e a execução do teste terminará e relatará todos os resultados até o momento. Um segundo control-c disparará um KeyboardInterrupt da maneira usual.

Se o manipulador unittest for chamado, mas o manipulador signal.SIGINT não estiver instalado, ele chamará o manipulador padrão. Normalmente, esse será o comportamento esperado pelo código que substitui um manipulador instalado e o delega. Para testes individuais que precisam de manipulação de unittest control-c desabilitada, o decorador removeHandler () pode ser usado.

As funções de utilitário a seguir habilitam a funcionalidade de manipulação de controle-c em estruturas de teste -

unittest.installHandler ()

Instale o manipulador control-c. Quando umsignal.SIGINT é recebido todos os resultados registrados têm TestResult.stop () chamado.

unittest.registerResult (resultado)

Registre um TestResultobjeto para manipulação de controle-c. Registrar um resultado armazena uma referência fraca a ele, portanto, não impede que o resultado seja coletado como lixo.

unittest.removeResult (resultado)

Remova um resultado registrado. Depois que um resultado for removido, TestResult.stop () não será mais chamado nesse objeto de resultado em resposta a um control-c.

unittest.removeHandler (function = None)

Quando chamada sem argumentos, esta função remove o manipulador control-c se ele tiver sido instalado. Esta função também pode ser usada como um decorador de teste para remover temporariamente o manipulador enquanto o teste está sendo executado.

GUI Test Runner

O módulo unittest é instalado para descobrir e executar testes interativamente. Este utilitário, um script Python 'inittestgui.py' usa o módulo Tkinter que é uma porta Python para o kit de ferramentas gráficas TK. Ele fornece uma GUI fácil de usar para descoberta e execução de testes.

Python unittestgui.py

Clique no botão 'Descobrir testes'. Uma pequena caixa de diálogo aparece, onde você pode selecionar o diretório e os módulos a partir dos quais o teste deve ser executado.

Finalmente, clique no botão Iniciar. Os testes serão descobertos a partir do caminho selecionado e dos nomes dos módulos, e o painel de resultados exibirá os resultados.

Para ver os detalhes do teste individual, selecione e clique em teste na caixa de resultados -

Se você não encontrar esse utilitário na instalação do Python, poderá obtê-lo na página do projeto http://pyunit.sourceforge.net/.

Similar, utilitário baseado no kit de ferramentas wxpython também está disponível lá.