我正在为Web服务实现组件测试。我想使用类方法setUpClass(cls):
在开始时只启动我的Web服务一次,但是在我的每个测试用例之前执行setUpClass(cls):
。为什么?文档说它在执行测试用例之前只执行一次。有任何想法吗?
我正在使用Python 3.5。
class SomeTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.MyService = ComponentManager.GetMyService()
cls.MyService.Start()
return super(SomeTest, cls).setUpClass()
@classmethod
def tearDownClass(cls):
return super(SomeTest, cls).tearDownClass()
def test_invalid_request(self):
response = self.client.SendJSONRequest(Constants.METHOD_POST, '/tile/invalid/', '{}')
...
答案 0 :(得分:2)
查看Python tools for Visual Studio source code,VS测试运行器完全独立地运行每个测试用例。
每个测试用例作为Python解释器的单独命令行调用运行(使用custom test launcher,传入模块和每个测试名称),这就是调用类设置和拆除的原因每次测试。 Python永远不会有机会一起运行这些测试。
如果这对你很重要,你必须file a ticket with the Python Tools project;我此时看不到relevant open ticket for the test adapter。
或者,使用不同的测试运行器运行测试。您可以使用built-in unittest
command line,例如:
python3 -m unittest your_package
或选择任何popular tools available。