все Python 3до 3.13unittestфункция
unittest.getTestCaseNames()
удалено
Возвращала имена тестовых методов класса. Удалена в Python 3.13 — используйте TestLoader().getTestCaseNames().
Синтаксис
unittest.getTestCaseNames(MyTest, 'test') # до 3.13
Функция модуля unittest.getTestCaseNames(MyTest, 'test') отдавала отсортированный список имён методов с заданным префиксом. Удалили её, потому что метод с тем же именем есть у TestLoader и учитывает его настройки. Как переписать: создайте загрузчик loader = unittest.TestLoader(), при нестандартном префиксе задайте loader.testMethodPrefix, затем вызовите loader.getTestCaseNames(MyTest) — без второго аргумента.
Примеры
# Python 3.13+
import unittest
try:
unittest.getTestCaseNames
except AttributeError as e:
print(type(e).__name__) # → AttributeError
# Python 3.13+
import unittest
class MathTest(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
def test_mul(self):
self.assertEqual(2 * 3, 6)
print(unittest.TestLoader().getTestCaseNames(MathTest)) # → ['test_add', 'test_mul']
import unittest
class MathTest(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
def test_mul(self):
self.assertEqual(2 * 3, 6)
print(unittest.getTestCaseNames(MathTest, 'test')) # → ['test_add', 'test_mul']
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности