python unittest2 - 将测试方法名称暴露给设置方法
我想在每个测试运行之前,找到即将执行的测试方法的名字,这个操作是在unittest的SetUp()
方法中进行的。有没有办法在不单独运行每个测试方法的情况下做到这一点呢?
举个例子:
class Testing(unittest2.TestCase):
def setUp():
# wish i could write:
string = getNextTestMethodName()
def test_example(self):
self.assertNotEqual(0,1)
2 个回答
1
你可以使用 self.shortDescription() 这个方法,它会告诉你测试的名称(或者和测试相关的说明文字),而且这个方法在 setUp/tearDown
方法中也可以使用。
补充一下:也许 self.id() 方法就够了,它只提供测试的名称(感谢 @Blair 的提醒)。
0
其实连自我调用的 self.id()
都不需要:
def setUp( self ):
logger.info( '# setUp for %s' % ( self, ))
这是一个典型的输出结果:
# setUp for test_mainframe_has_been_constructed (__main__.BasicFunctionality_FT)
... 这里的 "test_mainframe_has_been_constructed" 是一个方法。
所以如果你只是想要一个字符串,可以用 repr( self )
,然后根据需要进行切割,注意方法名是以左括号(或者第一个空格)结尾的。