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