Saya ingin menambahkan beberapa hal ke apa yang unittest.TestCase
kelas lakukan setelah diinisialisasi tetapi saya tidak tahu bagaimana melakukannya.
Sekarang saya melakukan ini:
#filename test.py
class TestingClass(unittest.TestCase):
def __init__(self):
self.gen_stubs()
def gen_stubs(self):
# Create a couple of tempfiles/dirs etc etc.
self.tempdir = tempfile.mkdtemp()
# more stuff here
Saya ingin semua rintisan dibuat hanya sekali untuk seluruh rangkaian pengujian ini. Saya tidak dapat menggunakan setUpClass()
karena saya sedang mengerjakan Python 2.4 (saya juga belum bisa membuatnya bekerja pada python 2.7).
Apa yang saya lakukan salah di sini?
Saya mendapatkan kesalahan ini:
`TypeError: __init__() takes 1 argument (2 given)`
... dan kesalahan lainnya saat saya memindahkan semua kode rintisan ke __init__
saat saya menjalankannya dengan perintah python -m unittest -v test
.
python
unit-testing
ffledgling
sumber
sumber
Jawaban:
Coba ini:
Anda mengganti
TestCase
's__init__
, jadi Anda mungkin ingin membiarkan kelas dasar menangani argumen untuk Anda.sumber
setUp
daripada menimpa__init__
?unittest.TestCase.__init__(self,*args,**kwargs)
alih-alihsuper(TestingClass, self).__init__(*args, **kwargs)
Hanya ingin menambahkan beberapa klarifikasi tentang menimpa fungsi init dari
Fungsi tersebut akan dipanggil sebelum setiap metode di kelas pengujian Anda. Harap dicatat bahwa jika Anda ingin menambahkan beberapa perhitungan mahal yang harus dilakukan sekali sebelum menjalankan semua metode pengujian menyenangkan menggunakan SetUpClass classmethod
Fungsi ini akan dipanggil satu kali sebelum semua metode pengujian kelas. Lihat
setUp
metode yang dipanggil sebelum setiap metode pengujian.sumber
Instal unittest2 dan gunakan unittest paket itu.
dan kemudian gunakan kelas setupModule / tearDownModule atau setupClass / tearDown untuk logika inisialisasi khusus
Info lebih lanjut: http://www.voidspace.org.uk/python/articles/unittest2.shtml
Juga kemungkinan besar Anda membuat tes integrasi lebih dari satu unittest. Pilih nama yang baik untuk Tes untuk membedakannya atau masukkan ke dalam modul penampung yang berbeda.
sumber