python-3.x - 无法从我的测试文件夹中导入模块服务器
问题描述
我正在编写一个烧瓶应用程序,它遵循以下文件夹结构。
backend
server.py
__init__.py
test
__init__.py
servertest.py
"""Server ping test for flask"""
import flask
import pytest
from server import app
@pytest.fixture()
def client():
yield testing.TestClient(app)
def test_ping_resource(client):
doc = "Flask GET service is working"
result = client.simulate_get("/api/ping")
assert result.status_code == 200
assert result.json == doc
这是我的测试文件。当我运行文件时。它给
from server import app
E ImportError: No module named 'server'
我做错了什么,这使服务器模块对测试模块不可见?
解决方案
Python 从路径列表中导入模块:
import sys
sys.path
您必须为 Python 提供一种查找方式server.py
:
- 您可以从
backend
目录运行您的代码,因为当前路径自动发生在sys.path
(cd backend; pytest
) - 您可以将完整路径添加
backend
到 PYTHONPATH
在某些时候,您需要阅读有关 import 的文档。
此外,要自然地使用 pytest,您的测试文件必须以test
.
推荐阅读
- javascript - javascript中for循环的计数器
- javascript - 从 Chrome 扩展创建和管理类电子窗口
- aws-lambda - 无服务器框架 - 为 dynamodb 设置资源权限
- java - 如何为我的前缀匹配器算法找到更好的算法
- android - 在生成带有颤振应用程序崩溃的构建并且未打开之后
- javascript - 在 Webpack 中的多个条目之间加载共享资产
- python - 如何在 Tkinter 中创建具有给定半径的圆?
- google-apps-script - 需要帮助编辑脚本以将多行移动到另一个选项卡以包含更多字段
- android - 当颤振升级应用程序显示错误消息时
- python - 如何将电报机器人与 Amazon S3 连接?