首页 > 解决方案 > 无法从我的测试文件夹中导入模块服务器

问题描述

我正在编写一个烧瓶应用程序,它遵循以下文件夹结构。

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-3.xflaskpytest

解决方案


Python 从路径列表中导入模块:

import sys
sys.path

您必须为 Python 提供一种查找方式server.py

  • 您可以从backend目录运行您的代码,因为当前路径自动发生在sys.path( cd backend; pytest)
  • 您可以将完整路径添加backend到 PYTHONPATH

在某些时候,您需要阅读有关 import 的文档

此外,要自然地使用 pytest,您的测试文件必须以test.


推荐阅读