Python 安装后,teardown_类立即运行

Python 安装后,teardown_类立即运行,python,class,pytest,teardown,Python,Class,Pytest,Teardown,我有类似的代码 现在我添加了类似的夹具“拆卸类”。当我执行代码时。拆卸类在安装类之后立即执行 @pytest.fixture(autouse=True, scope='class') def setup_class(self, connect_db_fixture_from_conftest): print("\n ********* we are inside setup") sql = "INSERT INTO %s.%s ( %s ) VALU

我有类似的代码 现在我添加了类似的夹具“拆卸类”。当我执行代码时。拆卸类在安装类之后立即执行

@pytest.fixture(autouse=True, scope='class')
def setup_class(self, connect_db_fixture_from_conftest):
    print("\n ********* we are inside setup")
    sql = "INSERT INTO %s.%s ( %s ) VALUES ( %s )"
    DBHelper.execute_query(self,sql,connect_db_fixture_from_conftest)
   
def test_db(self, connect_db_fixture_from_conftest):
    print("**** inside test *********")
   
@pytest.fixture(autouse=True, scope='class')
def teardown_class(self, connect_db_fixture_from_conftest):
    print("\n ********* we are inside teardown")
    sql = "DELETE from table_name where key=value"
    DBHelper.execute_query(self,sql,connect_db_fixture_from_conftest)
测试输出为:

********* we are inside setup
********* we are inside teardown
**** inside test *********
我想:

********* we are inside setup
**** inside test *********
********* we are inside teardown

我也尝试过这个建议,但没有成功

拆卸类
中添加一个
yield
作为第一行。有关更多详细信息,请参阅。非常感谢。它在teardown_类中工作得很好,但是我看到了以下错误,尽管在我的代码中我看到没有直接调用fixture
fixture“teardown_类”。fixture并不意味着直接调用,而是在测试函数请求它们作为参数时自动创建的。看见https://docs.pytest.org/en/stable/fixture.html 有关设备的详细信息,以及https://docs.pytest.org/en/stable/deprecations.html#calling-fixture直接介绍如何更新代码。
不要直接调用fixture(作为常规函数)。只能将它们用作测试函数参数。@hoefling,您能更具体一点吗?Hear是我的拆卸类
@pytest.fixture(autouse=True,scope='class')def拆卸类(self,connect\u db\u fixture\u from\u conftest):打印(“\n*******************我们在拆卸中”)sql=“从表名中删除key=value”DBHelper。执行查询(self,sql,connect\u db\u fixture\u from\u conftest)