python - unittest.TestCase setUpClass 覆盖和继承
问题描述
从下面的示例中可以看出,我BaseClass
为所有测试定义了一个,每个测试用例类都继承了基类。
这两个类都需要执行一次初始化,当test_vehicles.py
执行时,我需要确保setUpClass
基类的调用也被调用,不知道如何实现这@classmethod
一点。
# base.py
import unittest
class BaseClass(unittest.TestCase):
@classmethod
def setUpClass(cls):
# initialize stuff
cls.app = app
# test_vehicles.py
class VehiclesTestCase(BaseClass):
@classmethod
def setUpClass(cls):
# initialize stuff
cls.vehicle_id = '123'
def test_get_vehicle(self):
resp = self.app.get(self.vehicle_id)
self.assertEqual(resp, True)
if __name__ == '__main__':
unittest.main()
解决方案
类似的问题Using super with a class method。您还可以从https://docs.python.org/3/library/functions.html#super获得更多信息。
解决方案:使用超函数并绑定到类
# test_vehicles.py
class VehiclesTestCase(BaseClass):
@classmethod
def setUpClass(cls):
super(VehiclesTestCase, cls).setUpClass()
cls.vehicle_id = '123'
if __name__ == '__main__':
unittest.main()
推荐阅读
- java - 如何每 10 分钟重置一次线程?
- qt - Squish 不记录 Qt 应用程序中映射键的按键事件
- sql - CASE 条件和 SUM() 公用表表达式或 Group By
- oracle - 如何通过 Apache NiFi 提高从 Oracle 到 IBM DB2 的批量插入速度
- python - 如何进入 tktinker 中的另一个窗口并销毁前一个窗口
- html - 如何在 dart html 中创建自定义元素
- json - Swift:在结构中具有 Encodable 一致性的自定义键值编码
- python - AttributeError:“Bot”对象没有属性“pin_message”
- jib - 有没有办法自定义 jib 添加的 extraDirectories 的所有者?
- vba - VBA 单击 MS Access 应用程序按钮