不要让它们成为独立的测试-如果您要进行整体测试,请编写整体测试。
class Monolithic(TestCase):
def step1(self):
...
def step2(self):
...
def _steps(self):
for name in dir(self): # dir() result is implicitly sorted
if name.startswith("step"):
yield name, getattr(self, name)
def test_steps(self):
for name, step in self._steps():
try:
step()
except Exception as e:
self.fail("{} Failed ({}: {})".format(step, type(e), e))
如果测试稍后开始失败,并且您想要所有失败步骤的信息,而不是在失败的第一步停止测试案例,则可以使用以下subtests
功能:https ://docs.python.org/3/library/unittest.html#区分测试重复使用子测试
(子测试功能可unittest2
用于Python 3.4之前的版本:https ://pypi.python.org/pypi/unittest2)