无法跳过tornado python测试类中的某些方法

2024-09-30 10:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用AsyncHTTPTestCase类为tornado编写单元测试用例。以前,我的类跳过了不是从测试开始的方法(在cyclone上)。实际上,我创建了某些方法只是为了模拟数据,它也在这些方法上运行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”


Tags: 方法testselfdatareturndefsetupsome
1条回答
网友
1楼 · 发布于 2024-09-30 10:27:41

如果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

但是我建议用加载器来解决潜在的问题

相关问题 更多 >

    热门问题