pytest中的fixture是用来为测试用例提供共享的资源或环境准备的。默认情况下,fixture会在每个测试用例执行前调用一次,以便为测试用例提供准备好的环境。
如果你的fixture只在一个方法里被调用一次,可能是因为你的每个测试方法都没有使用到这个fixture。pytest会根据测试方法是否使用了fixture来决定是否调用它,并不会在每个方法里都强制调用fixture。
如果你希望fixture在多个方法里都被调用,确保每个方法都使用了相同的fixture。可以在测试方法的参数列表中显式地指定使用的fixture,或者使用@pytest.mark.usefixtures装饰器来标记使用fixture的方法。
另外,如果你想要在每个方法里都调用fixture,可以考虑将fixture的作用域设置为"function"。可以使用@pytest.fixture(scope=“function”)来定义fixture的作用域,默认值为"function"。这样,fixture就会在每个测试方法执行前都被调用一次。