Python 3.x 使用测试夹具作为类方法进行测试(PyTest)

Python 3.x 使用测试夹具作为类方法进行测试(PyTest),python-3.x,pytest,fixtures,test-class,Python 3.x,Pytest,Fixtures,Test Class,在PyTest中组织测试时,我发现可以在测试类中定义测试方法,如下所示: class TestBasicEquality: def test_a_equals_b(self): assert 'a' == 'b' 如果我们想编写一个必须使用PyTest fixture客户端的测试客户端,我们可以这样做: def test_client(client): # assert client.something == something 但是我们如何在一个测试类中组织

在PyTest中组织测试时,我发现可以在测试类中定义测试方法,如下所示:

class TestBasicEquality:
    def test_a_equals_b(self):
        assert 'a' == 'b'
如果我们想编写一个必须使用PyTest fixture客户端的测试客户端,我们可以这样做:

def test_client(client):
    # assert client.something == something
但是我们如何在一个测试类中组织测试客户机呢?我尝试使用@pytest.mark.usefixturesclient作为测试类的装饰器,但没有成功

有人能告诉我如何和/或指向一个指南/文档让我理解吗


也许这背后隐藏着一个问题:我们什么时候应该或不应该在类中放置pytest测试?现在才开始学习PyTest

在给定的情况下,您只需将fixture作为另一个方法参数包括在内:

类TestSomething: def测试客户端自身,客户端: 断言client.something==something 那么这些课程有什么好处呢?就个人而言,我很少需要将它们与pytest一起使用,但您可以使用它们来:

在一个文件中创建测试组,并且只能运行一个组:pytest./tests/test.py::TestSomething 为每个测试方法执行一个夹具,而这些方法不一定需要访问夹具本身。是在每种方法之前进行的自动清理。这是您发现的@pytest.mark.usefixtures。 通过定义一个fixture的to类:@pytest.fixturescope=class,autouse=True,为每个测试类运行一次fixture