В будущем мне нужно будет добавить много одинаковых тестов с разными параметрами.Сейчас я делаю примерный набор тестов:
import unittest
class TestCase(unittest.TestCase):
def __init__(self, methodName='runTest', param=None):
super(TestCase, self).__init__(methodName)
self.param = param
def test_something(self):
print '\n>>>>>> test_something: param =', self.param
self.assertEqual(1, 1)
if __name__ == "__main__":
suite = unittest.TestSuite()
testloader = unittest.TestLoader()
testnames = testloader.getTestCaseNames(TestCase)
for name in testnames:
suite.addTest(TestCase(name, param=42))
unittest.TextTestRunner(verbosity=2).run(suite)
Он обнаруживается VS Code:
start
test.test_navigator.TestCase.test_something
Когда я запускаю тесты, я не получаю параметр:
test_something (test.test_navigator.TestCase) ...
>>>>>> test_something: param = None
ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Если я запускаю этот файл напрямую, все работает как положено (примечание param = 42
часть)
test_something (__main__.TestCase) ...
>>>>>> test_something: param = 42
ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Так что, похоже, VS Code выполняет тесты самостоятельно, просто используяобнаруженные классы и полное игнорирование TestSuite?
Что я делаю не так?
Спасибо.