Что я хотел бы сделать, так это создать папку, куда люди могут поместить файл для тестирования, и чтобы pyunit автоматически расширялся, чтобы запускать тест как отдельный тест. В настоящее время я делаю следующее:
class TestName(unittest.testcase):
def setUp(self):
for file in os.listdir(DIRECTORY):
# Setup Tests
def test_comparison(self):
for file in os.listdir(DIRECTORY):
# Run the tests
def suite():
return unittest.TestSuite([
unittest.TestLoader().loadTestsFromTestCase(TestName),
])
if __name__ == "__main__":
unittest.TextTestRunner(verbosity=2).run(suite())
Очевидно, что с этим связано много проблем, например, если какой-либо тест не пройден, все это не пройдено и т. д. и т. д. Что я хотел бы сделать, так это настроить pyunit так, чтобы он запускал тест (или тестовый пример), для каждый файл, помещенный в каталог. Теперь я думаю, что мог бы создать класс, указанный выше, только с двумя методами, но для того, чтобы сделать это успешно, мне нужно было бы добавить параметр контекста, например:
def setUp(self, filepath):
# Do stuff
Затем я мог бы поместить цикл в основной фрагмент кода и запустить тесты следующим образом:
def suite():
return unittest.TestSuite([
unittest.TestLoader().loadTestsFromTestCase(TestName, file),
])
if __name__ == "__main__":
for file in DIRECTORY:
unittest.TextTestRunner(verbosity=2).run(suite(file))
Но я не уверен, как это сделать, почти не переписав дырочный класс unittest.TestCase(). Могу ли я это сделать каким-либо другим способом, или есть ли другой способ получить динамически расширяющийся набор тестов/тестовых случаев в зависимости от того, сколько файлов находится в папке? Спасибо.