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 @wipd
yang akan menyetel wip
atribut pada objek yang didekorasi. Misalnya:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Kemudian -a wip
dapat digunakan di baris perintah untuk mempersempit pelaksanaan pengujian ke yang ditandai dengan @wipd
.
Catatan tentang nama ...
Saya menggunakan nama @wipd
untuk dekorator daripada @wip
untuk 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 import
akan menjadikan wip
dekorator sebagai anggota kelas , dan semua tes di kelas akan dipilih. The attrib
Plugin cek kelas induk dari metode tes untuk melihat apakah atribut yang dipilih ada di sana juga, dan atribut yang dibuat dan diuji oleh attrib
tidak ada di ruang terpisah. Jadi jika Anda menguji dengan -a foo
dan kelas Anda berisi foo = "platypus"
, maka semua tes di kelas akan dipilih oleh plugin.