我想建立一个unittest
TestCase,其中一些案例是动态添加的。这些方法是从 my 中添加的test_nothing
,但是unittest
由于它只运行一个测试,所以没有考虑到它们。就好像我建造test_xxxx
得太晚了,他们没有被看到。是不是setUpClass
在游戏中执行得太晚了?我应该把它放在__init__
构建我的方法中,然后调用super().__init__
吗?
import unittest
import blognodes
class Test_base62(unittest.TestCase):
testset = { 0: '0', 10: 'a', 61: 'Z', 62: '10', 3844: '100'}
@classmethod
def setUpClass(cls):
cls.testme = 5
print("i am the setUp function")
for d, b62 in cls.testset.items():
print("building the first set")
cls.build_test_base62_values(d, b62)
print("building the second set")
cls.build_test_int_values(d, b62)
@classmethod
def build_test_base62_values(cls, d, b62):
def f(cls):
target = blognodes.base62(d)
cls.assertEqual(target.str(), b62)
fname = "test_base62_value_{}".format(d)
setattr(cls, fname, f)
@classmethod
def build_test_int_values(cls, d, b62):
def f(cls):
target = blognodes.base62(d)
cls.assertEqual(target.int(), d)
fname = "test_int_value_{}".format(d)
setattr(cls, fname, f)
def test_nothing(self):
print("i'm test nothing")
t = dir(self)
print(t)
self.assertEqual(5, self.testme)
谢谢。