Я использую unittest2
на Python2.5
, чтобы обнаружить тесты с unittest.TestLoader.discover
, например:
suite = unittest2.loader.TestLoader().discover(test_path)
unittest2.TextTestRunner(verbosity=2,
resultclass=ColorTestResult).run(suite)
для некоторых test_path
в основе моего проекта.
У меня есть базовый класс, который расширен и перегружен многими другими, но я хотел бы проверить, что у этих производных нет регрессий. Давайте назовем этот базовый класс A
и его производные A1
, A2
и т. Д.
Я хотел бы создать базовый класс unittest2.TestCase
, который может быть перегружен для каждого из производных A
. Другими словами, я хотел бы иметь иерархию примерно так:
class A:
pass
class A1(A):
pass
class UT(unittest2.TestCase):
target = A
class UT2(UT):
target = A1
Теперь уловка в том, что я превращаю A
в абстрактный класс, и UT
завершится неудачей практически во всех тестовых случаях, которые будут подходящим образом проходить для UT2
и т. Д.
Мне кажется, что самое простое решение состоит в том, чтобы discover
от unittest2 как-то "пропустил" UT
. Я думаю, что это было бы возможно, поместив его в файл, отличный от одного подходящего шаблона 'test * .py', хотя, похоже, это не так.
Есть ли какие-либо решения для вышеуказанного сценария, которые могут быть уместными?
Буду благодарен за любые мысли и предложения.