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