belalai adalah ekstensi Hidung yang memfasilitasi pengujian tingkat yang lebih tinggi.
Perubahan bagaimana kelas uji ditemukan dengan memaksa mereka untuk mendaftar melalui dekorator yang mengandung metadata yang berguna seperti kelompok apa yang mereka berada, apakah mereka memiliki ketergantungan pada tes lain, dan jika mereka harus diabaikan.
Proboscis macam semua tes yang terdaftar dalam urutan run yang diinginkan kemudian membangun sebuah test suite yang lolos ke Hidung. Hal ini juga dapat menyaring daftar ini sehingga mungkin untuk menentukan kelompok tes yang ingin Anda jalankan tanpa melewati dalam kelas exact test. Pada saat runtime, tes yang bergantung pada tes lain yang telah gagal secara otomatis ditandai sebagai dilewati.
Sebagian besar fungsi ini "terinspirasi" oleh TestNG. Jika Anda datang dari kerangka itu, fitur utama belalai saat penawaran adalah tes tergantung pemesanan (saat ini terbatas pada tingkat kelas) dan kemampuan untuk mengatur tes Anda ke dalam kelompok independen dari struktur modul atau paket.
Dengan Proboscis itu mungkin untuk menulis tes yang bergantung pada layanan web (atau ketergantungan lain yang ingin hanya menginisialisasi sekali) seperti ini:
@ Test (kelompok = ["service.tests"], depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Kelas 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 ())
Kemudian menulis kode untuk memulai dan bersih menutup bahwa layanan web dalam modul lain sebagai tes kelas itu sendiri:
@ Test (kelompok = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Kelas 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; # Start up server web, kemudian mengeluarkan 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 (kelompok = ["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; kelas StopService (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; jika 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 ())
Menggunakan Proboscis Anda dapat yakin tes akan mengeksekusi dalam urutan yang diinginkan bahkan jika Anda menambahkan kelas tes yang lebih, mengubah nama mereka, atau memindahkannya ke modul yang berbeda
Persyaratan :.
- Python
- hidung
Komentar tidak ditemukan