proboscide è un'estensione naso che facilita il test di livello superiore.
Cambiamenti come classi di test siano rilevati da costringendoli a registrarsi tramite decoratori che contengono metadati utili, come quello che i gruppi si sono, anche se non hanno dipendenze di altri test, e se devono essere ignorati.
Tipi proboscide tutti i test registrati nel fine corsa desiderata, quindi costruisce una suite di test che passa a Naso. Può anche filtrare questa lista in modo che sia possibile specificare quali gruppi di test che si desidera eseguire senza passare nelle classi di test esatti. In fase di esecuzione, i test che dipendono da altri test che hanno fallito sono contrassegnati automaticamente come saltato.
Gran parte di questa funzionalità è stato "ispirato" di TestNG. Se arrivate da tale quadro, le caratteristiche principali proboscide attualmente offerte sono ordinazione dipendono prova (attualmente limitato al livello di classe) e la possibilità di organizzare i test in gruppi indipendenti della struttura dei loro moduli o pacchetti.
Con Proboscis è possibile scrivere test che dipendono da un servizio web (o qualche altro dipendenza vuoi inizializzare una sola volta) in questo modo:
Test (gruppi = [""], service.tests depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Classe WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_change_profile_image (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 ())
Quindi scrivere il codice per avviare e arrestare in modo pulito che servizio web in qualsiasi altro modulo come test di prima classe stessa:
test (gruppi = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Classe StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_start (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Avvia il server web, quindi emette una connessione.
& 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 (gruppi = ["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 class (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_stop (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 Proboscis potete stare certi i test verranno eseguiti secondo l'ordine desiderato, anche se si aggiungono più classi di test, cambiare il loro nome, o spostarli in diversi moduli
Requisiti :.
- Python
- naso
I commenti non trovato