在Python中执行每个子类函数之前,先调用父类函数

时间:2020-05-14 21:41:12

标签: python-3.x overriding python-unittest python-class

这是代码的想法

文件1

class MyParentClass(unittest.TestCase):

    def setUpClass(self):
        # SuperClass is already defined in the file
        obj = SuperClass()
        self.exp_fn = obj.create_exp_fn()

    # This doesn't work
    def setUp(self):
        # sets up app to open the screen on which tests run (~100 lines)

文件2

from File1 import MyParentClass
class MyChildClass(MyParentClass):

    def test_func_1(self):
        # Start execution of its test
        self.exp_fn.run_an_attribute()


    def test_func_2(self):
        # Start execution of its test
        self.exp_fn.run_another_attribute()

我在MyChildClass中有几个函数,还有几个文件,其中包含类似MyChildClass的类,它们继承了unittest.TestCase

我希望在执行诸如setUp之类的任何功能之前先调用MyChildClass,但我不想单独装饰MyChildClass的每个功能或使用相同的100行{{ setUp()的所有文件中都有unittest的1}}功能。如上所示,它应该存在于MyParentClass中

要运行测试,我需要设置应用程序,例如打开特定屏幕,登录并打开另一组窗口,然后才能开始测试。否则,测试将找不到该元素,因为该应用找不到所需的屏幕。 而且测试总是从应用程序外部开始

是否有一种方法可以按照上述条件实现与MyChildClass相同的功能。我在单元测试中浏览了setUp()的源代码,在其中他们使用上下文管理器来实现run(),但并没有完全理解

如果有人可以提出解决方案,我们将非常有责任...谢谢!

0 个答案:

没有答案