【发布时间】:2020-01-22 15:09:23
【问题描述】:
是否有可能在 tornado 中定义测试的基类本身不作为测试运行?
假设我有以下最小示例作为基类:
from tornado.testing import AsyncTestCase, gen_test
from tornado.httpclient import HTTPRequest
class AbstractTestCase(AsyncTestCase):
def set_parameters(self):
#Set some parameter value here: self.uri = ...
raise NotImplementedError
@gen_test
def test_common_functionality(self):
req = HTTPRequest(self.uri, method = "GET")
response = yield self.client.fetch(req, raise_error=False)
self.assertEqual(200, response.code)
现在,我想创建几个继承自 this 的测试用例,为 self.uri 定义它们自己的值...并有一些自己的特定测试。像这样:
class ConcreteTestCase(AbstractTestCase):
def set_parameters(self):
self.uri = "www.stackoverflow.com"
@gen_test
def test_some_other_thing(self):
self.assertEqual(2, 1+1)
但是,当我尝试运行它时,AbstractTestCase 也会自行运行,并给出错误(NotImplementedError)。即使我只尝试运行继承测试也会发生这种情况。
有什么办法可以解决这个问题,还是我必须在每个测试用例中复制功能?
【问题讨论】:
标签: python unit-testing testing tornado