我正在使用 AsyncHTTPTestCase 类为龙卷风编写单元测试用例。以前我的班级跳过了不是从测试开始的方法(在旋风中)。我实际上创建了某些方法只是为了模拟数据,它也在这些方法上运行 UT,然后以异常方式使它们失败:忽略测试方法的返回值
我的班级是:
class TestClass(AsyncHTTPTestCase):
def setUp(self):
super(TestClass, self).setUp()
self.create_data = self.builddatafortestcase()
def tearDown(self):
settings.UT = False
super(AsyncHTTPTestCase, self).tearDown()
def get_app(self):
return Application([
("/", Handler)
])
def test_testcase1:
-------- some test case
def builddatafortestcase(self): --- i want this to be skipped
------
build some data
return data
如何跳过此方法来运行“builddatafortestcase”??
答案 0 :(得分:0)
如果 UnitTest 选择不以“test”开头的方法,您将不得不查看您是如何运行和加载测试的。通常(使用 python -m tornado.testing
)它会使用 unittest.TestLoader
,它有 testMethodPrefix = 'test'
所以它的 getTestCaseNames
方法应该只返回以 test
开头的方法。
您不能在函数中使用 self.skipTest(reason)
,因为它会跳过所有测试。
您可以在 builddatafortestcase
中设置实例变量而不是返回,如果它已经设置为 skipTest
,如下所示:
class TestClass(AsyncHTTPTestCase):
def setUp(self):
super(TestClass, self).setUp()
self.builddatafortestcase()
def builddatafortestcase(self):
if hasattr(self, "create_data"):
self.skipTest("Not a test")
# build some data
self.create_data = data
但我建议用加载器解决根本问题...