Python 是否可以利用类继承来使用pytest组织测试?

Python 是否可以利用类继承来使用pytest组织测试?,python,pytest,Python,Pytest,我使用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(

我使用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)

...
我希望避免重复
调用\u测试\u属性\u设置\u由\u类\u A(目标)
等设置

我如何组织/创建我的pytests,这样我就不会不断地重新编写代码,通过它们的继承来测试每个目标的公共属性?换句话说,如果Part1和Part2都继承自类A,则它们都具有由类A指定的属性

是否有某种方法可以使用Python的类继承结构来允许pytests反映与对象相同的继承?换句话说,像下面这样的事情是可能的吗

class PytestA():
    def test_attributes_set_by_class_A()

class PytestB(PytestA):
    def test_attributes_set_by_class_B()

test_all = PytestB(target)
我一直在试图弄清楚上面的代码是如何接收
target
参数的,因为pytest类中现在允许使用
\uuu init\uuu()


我正在使用Python3,我想您需要一个依赖于另一个设备的设备。看见也许您需要一个通用的
target
fixture,然后是
targetA
fixture和
targetB
fixture。我不完全理解您的测试是如何工作的,因此我不太愿意根据您所写的内容给出一个示例。

为什么您要多次运行classA/classB测试?这是单元测试还是其他什么?@Austin Hastings:这些是硬件模型。每种类型的硬件略有不同,但都有不同的共同特点。这些共同特征被封装在父类ClassA、ClassB等中。