我有这样的项目结构
\project
\app.py
\tests
\__init__.py
\test_startup.py
app.py
看起来像这样
from starlette.applications import Starlette
from starlette.responses import UJSONResponse
from starlette.routing import Route
async def homepage(request):
return UJSONResponse({'hello': 'world'})
app = Starlette(debug=True, routes=[
Route('/', homepage)
])
test_startup.py
看起来像这样
from starlette.testclient import TestClient
from ..app import app
def test_app():
client = TestClient(app)
response = client.get('/')
assert response.status_code == 200
__init__.py
是一个空文件
当我尝试从我的项目目录运行pytest -v
时,它失败并出现错误
tests/test_startup.py:1: in <module>
from starlette.testclient import TestClient
E ModuleNotFoundError: No module named 'starlette'
我能够运行该应用程序。另外,我试图将conftest.py
同时放入-tests
和project
文件夹,但没有任何帮助
有什么问题
尝试更改此导入:
为此:
我完全按照发布的方式运行了您的代码,并得到了一个
E ValueError: attempted relative import beyond top-level package
。更改导入后,pytest -v
成功:如果这不起作用,可能按照@Krishnan Shankar的建议去做,看看venv中安装了什么
相关问题 更多 >
编程相关推荐