Python Glossary English

все 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Сообщить о неточности