Проблема «runTest» обычно возникает, поскольку люди упускают из виду тот факт, что unittest.TestCase имеет аргумент по умолчанию в своем конструкторе.Взгляните на lib / python / unittest / case.py
class TestCase:
def __init__(self, methodName='runTest'):
Обратите внимание, что базовый класс "TestCase" не обеспечивает реализацию по умолчанию "def runTest", но, тем не менее, не пытается его вызвать.Вот откуда возникает ошибка.Фактическая путаница возникает из-за того, что для использования unittest.main () не требуется метод runTest, но он по-прежнему будет вызывать все функции def test *.Это работает ... но не из-за поведения по умолчанию TestCase, а из-за кода проверки из unittest.main - это делает что-то вроде следующего:
class MyTest(unittest.TestCase):
def test_001(self):
print "ok"
if __name__ == "__main__":
suite = unittest.TestSuite()
for method in dir(MyTest):
if method.startswith("test"):
suite.addTest(MyTest(method))
unittest.TextTestRunner().run(suite)
Отвечая на оригинальный вопрос "У меня есть несколько методов, написанныхв django.test.TestCase ": вам нужно добавить каждый метод индивидуально в набор тестов, используя ваш тестовый класс и указав имя целевого метода в качестве первого аргумента при создании объекта.