Menentukan nama pada baris perintah seperti yang disarankan jawaban lain tidak berfungsi dan berguna. Namun, ketika saya sedang mengerjakan tes menulis, saya sering menemukan bahwa saya hanya ingin menjalankan tes yang sedang saya kerjakan, dan nama yang harus saya tulis di baris perintah menjadi cukup panjang dan rumit untuk ditulis . Dalam kasus seperti itu, saya lebih suka menggunakan dekorator dan bendera khusus.
Saya mendefinisikan wipd("dekorator sedang dalam proses") seperti ini:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
Ini mendefinisikan dekorator @wipdyang akan menyetel wipatribut pada objek yang didekorasi. Misalnya:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Kemudian -a wipdapat digunakan di baris perintah untuk mempersempit pelaksanaan pengujian ke yang ditandai dengan @wipd.
Catatan tentang nama ...
Saya menggunakan nama @wipduntuk dekorator daripada @wipuntuk menghindari masalah seperti ini:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
Ini importakan menjadikan wipdekorator sebagai anggota kelas , dan semua tes di kelas akan dipilih. The attribPlugin cek kelas induk dari metode tes untuk melihat apakah atribut yang dipilih ada di sana juga, dan atribut yang dibuat dan diuji oleh attribtidak ada di ruang terpisah. Jadi jika Anda menguji dengan -a foodan kelas Anda berisi foo = "platypus", maka semua tes di kelas akan dipilih oleh plugin.