На первый взгляд, это выглядит например, вам нужно создать экземпляр mrp_repair_test_case
. Ваша текущая строка:
mrp_repair_test_case(a=10,b=20)
на самом деле ничего не делает.
Try (не проверено):
def runtest():
m = mrp_repair_test_case(a=10, b=20)
suite = unittest.TestLoader().loadsTestsFromTestCase(m)
res = unittest.TextTestRunner(stream=out, verbosity=2).run(suite)
Это предполагает, что вы создали 'из', как поток уже.
Edit:
Кстати, есть какой-либо причине вы не используете метод установки, чтобы установить эти значения? Это была бы нормальная передовая практика. Рассматривая документацию loadTestsFromTestCase, похоже, что он будет принимать только сам класс, а не экземпляр его, что означает, что вы скорее работаете с дизайном модуля unittest.
Edit 2:
В ответ на вашу дальнейшую информацию, я бы на самом деле установить ваши UID и курсоров значения отдельно на уровне модуля перед вызовом тестов. Обычно я не большой поклонник глобалов, но если я правильно понимаю, эти значения будут A) только для чтения B) всегда одинаковы для одного и того же клиента, что позволяет избежать большинства обычных ошибок при их использовании.
Edit 3:
Чтобы ответить на ваши изменения, если вы действительно хотите использовать __init__
вы, вероятно, можете, но вам придется свернуть свой собственный альтернативный loadsTestsFromTestCase, и, возможно, собственный TestSuite (вы должны проверить внутренности того, как это работает). Как я уже сказал выше, вы будете работать против существующего дизайна модуля - насколько это возможно, если вы решите провести свое тестирование таким образом, вам будет проще свернуть свое собственное решение с нуля, чем использовать unittest. Amend: только что проверили, вам определенно придется свернуть собственную версию TestSuite, поскольку существующий создает новый экземпляр TestCaseClass для каждого теста.