我正在使用 Pytest 通过 Python 模型测试硬件。
我当前的 conftest 设置允许我通过我喜欢的 funcargs 实例化 Python 模型。
def test_part1(target):
...
def test_part2(target):
...
等等
我的模型有一个深刻但简单的单继承结构:
class A():
def __init__:
self.attributes_added_by_class_A
...
class B(A):
def __init__:
super().__init__()
self.attributes_added_by_class_B
...
等等
我的 pytests 目前看起来像这样:
def test_part1(target):
call_test_for_attributes_set_by_class_A(target)
call_test_for_attributes_set_by_class_B(target)
call_tests_specific_to_part1(target)
def test_part2(target):
call_test_for_attributes_set_by_class_A(target)
call_test_for_attributes_set_by_class_B(target)
call_tests_specific_to_part2(target)
...
我想避免重复call_test_for_attributes_set_by_class_A(target)
等的需要。
我如何组织/创建我的 pytest,这样我就不会不断地重写代码来测试每个目标的共同属性,通过它们的继承?换句话说,如果 Part1 和 Part2 都继承自 Class A,那么它们都具有 Class A 分配的属性。
有什么方法可以使用 Python 的类继承结构来允许我的 pytest 反映与我的对象相同的继承?换句话说,是否可能出现以下情况?
class PytestA():
def test_attributes_set_by_class_A()
class PytestB(PytestA):
def test_attributes_set_by_class_B()
test_all = PytestB(target)
我一直试图弄清楚上面将如何接收pytest 类中现在允许的参数(?)target
。__init__()
我正在使用 Python3