python unittest2 - 将测试方法名称暴露给setup方法

时间:2011-12-13 08:15:42

标签: python python-2.6 unittest2

我需要找到测试方法的名称,该方法将在每次测试之前运行unittest的SetUp()方法中运行。如果不单独运行每种测试方法,我怎么能这样做呢?

示例:

class Testing(unittest2.TestCase):
    def setUp():
        # wish i could write:
        string = getNextTestMethodName()

    def test_example(self):
        self.assertNotEqual(0,1)

2 个答案:

答案 0 :(得分:1)

您可以使用self.shortDescription()来提供测试的名称(或与测试相关联的文档字符串),即使在setUp/tearDown方法中也是如此。

编辑:也许self.id()就够了,它只提供测试名称(感谢@Blair)。

答案 1 :(得分: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 ),大概是,如果你只想要字符串 - 然后切片和骰子,观察方法名称以开始括号(或第一个空格)结束。