Python unittest - тестирование нескольких файлов с одинаковым именем
Я пытаюсь протестировать несколько функций с одним и тем же именем и подписью. (Предоставление студенческих заданий.) Моя настройка в настоящее время выглядит следующим образом:
TestCases/
__init__
testcase1.py
submission1/
func.py
submission2/
func.py
submission3/
func.py
каждый func.py
содержит функцию с именем foo
, Я хотел бы проверить каждое вхождение foo с одним и тем же набором тестов. Стандартная установка unittest
import unittest
from func import foo
class TestFoo(unittest.TestCase):
def test_empty(self):
self.assertTrue(foo(''))
...
if __name__ == '__main__':
unittest.main()
имеет (неудивительно) проблемы с from func import foo
строка, поскольку func находится не в той же папке, и я не могу заставить его динамически подбирать правильный импорт.
Меня поразило, что я могу воспользоваться преимуществами уже расширенного базового класса и устранить необходимость импорта, выполнив что-то вроде:
import unittest
class TestFoo(unittest.TestCase):
def __init__(self, foo):
self.foo = foo
def test_empty(self):
self.assertTrue(self.foo(''))
и в моей тестовой программе создать экземпляр TestFoo
Объект и передать ему функцию для проверки:
tf = TestFoo(foo)
но тогда я не смог правильно определить и вызвать набор тестов.
Или есть совершенно другой подход, который сделал бы то, что мне нужно?