【发布时间】:2023-03-02 21:33:01
【问题描述】:
将来,我需要添加许多具有不同参数的相同测试。现在我正在制作一个示例测试套件:
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 自行运行测试?
我做错了什么?
谢谢。
【问题讨论】:
标签: python visual-studio-code python-unittest