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)

но тогда я не смог правильно определить и вызвать набор тестов.

Или есть совершенно другой подход, который сделал бы то, что мне нужно?

0 ответов

Другие вопросы по тегам