tromba é uma extensão do nariz que facilita o teste de nível superior.
Alterações como as classes de teste são descobertos por forçá-los a se inscrever por decoradores que contêm metadados úteis, como o que os grupos em que estão, ou não ter dependências em outros testes, e se eles devem ser ignorados.
Sortes tromba todos os testes registados para a ordem de execução desejado, em seguida, constrói um conjunto de testes que ele passa para Nose. Ele também pode filtrar essa lista para que seja possível especificar quais os grupos de testes que deseja executar, sem passar nas aulas de exatas teste. Em tempo de execução, os testes que dependem de outros testes que falharam são automaticamente marcados como ignorados.
Grande parte dessa funcionalidade foi "inspirado" por TestNG. Se você está vindo esse quadro, as principais características tromba oferece atualmente são ordenação dependente teste (atualmente limitado ao nível de classe) e a capacidade de organizar seus testes em grupos independentes da estrutura de seus módulos ou pacotes.
Com narigudo é possível escrever testes que dependem de um serviço web (ou alguma outra dependência que você gostaria de inicializar apenas uma vez) como este:
Test (grupos = ["service.tests"], depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; classe WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_change_profile_image def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("default.jpg", self.client.get_profile_image ())
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client.set_profile_image ("spam.jpg")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("spam.jpg", self.client.get_profile_image ())
Em seguida, escreva o código para iniciar e desligar corretamente que o serviço de web em qualquer outro módulo quanto a própria um teste de primeira classe:
test (grupos = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; classe StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_start def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Iniciar o servidor web, em seguida, emite um connect.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.start_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertTrue (client.service_is_up)
& Nbsp; & nbsp; & nbsp; Test (grupos = ["service.shutdown"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; depends_on_groups = ["service.initialization", "service.tests"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; never_skip = True)
& Nbsp; & nbsp; & nbsp; StopService classe (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_stop def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; se client.service_is_up:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.stop_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertFalse (client.service_is_up ())
Usando narigudo você pode ter certeza os testes serão executados na ordem desejada mesmo se você adicionar mais classes de teste, mudar de nome, ou movê-los para diferentes módulos
Requisitos :.
- Python
- nariz
Comentários não encontrado