Способ вывода имени теста pyunit в setup()

Есть ли способ в python для теста pyunit вывести тест, который он выполняет в данный момент. Пример:

def setUp(self):
    log.debug("Test %s Started" % (testname))

def test_example(self):
    #do stuff

def test_example2(self):
    #do other stuff

def tearDown(self):
    log.debug("Test %s Finished" % (testname))

person Brian O'Neill    schedule 21.12.2010    source источник


Ответы (3)


Вы можете использовать self._testMethodName. Это родительский класс unittest.TestCase.

def setUp():
    print "In method", self._testMethodName
person Tyler Hobbs    schedule 22.12.2010
comment
Где документация на это? - person Cory; 12.05.2011
comment
Нет ни одного. Как можно догадаться по префиксу подчеркивания в имени атрибута, это внутренний атрибут, который не предназначен для раскрытия. Я действительно хотел бы, чтобы был правильный способ сделать это, хотя. - person Tyler Hobbs; 14.05.2011

self.id().split('.')[-1]

Вы можете найти документацию по адресу: http://docs.python.org/library/unittest.html#unittest.TestCase.id

изменить: для пользователей версии 2.7 https://docs.python.org/2.7/library/unittest.html#unittest.TestCase.id

person Young-hwi    schedule 19.02.2013

Вы можете использоватьstr(self.id()).split()[4]. Его можно найти здесь http://docs.python.org/library/unittest.html#unittest.TestCase.id

person Xiao    schedule 04.07.2011