这是代码的想法
文件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()
,但并没有完全理解
如果有人可以提出解决方案,我们将非常有责任...谢谢!