将连接数据库写在conftest.py文件里,并return conn,在test_01.py调用时找不到conn
时间: 2023-12-08 12:03:06 浏览: 168
连接数据库.py
如果你在 conftest.py 文件中定义了 `conn`,你需要确认以下几点:
1. `conn` 是定义在 `conftest.py` 文件中的,而不是在任何一个测试文件中,因为这样才能确保 `conn` 可以在所有测试文件中使用。
2. `conn` 是定义为一个函数级别的 fixture,即使用 `@pytest.fixture()` 装饰器来修饰。
3. `conn` 函数的返回值是一个代表数据库连接的对象,比如 `psycopg2.connect()` 返回的连接对象。
如果以上条件都满足,那么在你的 `test_01.py` 文件中,你可以通过在测试函数的参数列表中添加一个名为 `conn` 的参数来获取 `conn` fixture。例如:
```
import pytest
def test_something(conn):
cur = conn.cursor()
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()
assert len(rows) > 0
```
在这个例子中,`test_something` 函数需要使用 `conn` fixture,因此在函数的参数列表中定义了一个名为 `conn` 的参数。当 pytest 运行这个测试函数时,它会自动查找名为 `conn` 的 fixture,并将返回值传递给 `conn` 参数。
阅读全文