如何从 pytest 引用我的 Azure 函数?
How do I reference my Azure function from pytest?
我正在使用带有 Azure 函数的 Python 3.8。我有以下项目布局...
myproject
__app__
__init__.py
objects
__init__.py
tests
__init__.py
functions
__init__.py
objects
__init__.py
test_objects.py
我的app/objects/init.py文件是这样开始的...
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
"""."""
...
然后我的 tests/functions/objects/init.py 看起来像
import pytest
import azure.functions as func
_import = __import__('__app__/objects')
def test_objects():
...
然而,当我运行
pytest tests/functions/test_objects.py
我收到错误
tests/functions/test_objects.py:8: in <module>
_import = __import__('__app__/objects')
E ModuleNotFoundError: No module named '__app__/objects'
引用我的函数的正确方法是什么?我也只尝试了“对象”,但这导致了相同的 ModuleNotFoundError。
从docs我看到函数是直接导入的,即:
# tests/test_httptrigger.py
import unittest
import azure.functions as func
from __app__.HttpTrigger import my_function
也许您可以尝试这样引用您的测试:
# tests/test_objects.py
import unittest
import azure.functions as func
from __app__.objects import main
+++更新+++
现在我尝试自己做,但偶然发现了类似的错误。经过一番谷歌搜索后,我还在 github.com/Azure/azure-functions-python-worker.
找到了一个未解决的问题
+++ 更新 2 +++
我通过向测试文件夹添加一个空的 __init__.py
文件,设法 运行 获得了它。另一件事是,我已经适应了上述文档中的文件夹结构,并且 运行 根文件夹中的以下请求:
pytest .
结果,测试执行成功。这是我创建的示例存储库:
github.com/DSpirit/azure-functions-python-unit-testing
我正在使用带有 Azure 函数的 Python 3.8。我有以下项目布局...
myproject
__app__
__init__.py
objects
__init__.py
tests
__init__.py
functions
__init__.py
objects
__init__.py
test_objects.py
我的app/objects/init.py文件是这样开始的...
import azure.functions as func
def main(req: func.HttpRequest) -> func.HttpResponse:
"""."""
...
然后我的 tests/functions/objects/init.py 看起来像
import pytest
import azure.functions as func
_import = __import__('__app__/objects')
def test_objects():
...
然而,当我运行
pytest tests/functions/test_objects.py
我收到错误
tests/functions/test_objects.py:8: in <module>
_import = __import__('__app__/objects')
E ModuleNotFoundError: No module named '__app__/objects'
引用我的函数的正确方法是什么?我也只尝试了“对象”,但这导致了相同的 ModuleNotFoundError。
从docs我看到函数是直接导入的,即:
# tests/test_httptrigger.py
import unittest
import azure.functions as func
from __app__.HttpTrigger import my_function
也许您可以尝试这样引用您的测试:
# tests/test_objects.py
import unittest
import azure.functions as func
from __app__.objects import main
+++更新+++
现在我尝试自己做,但偶然发现了类似的错误。经过一番谷歌搜索后,我还在 github.com/Azure/azure-functions-python-worker.
找到了一个未解决的问题+++ 更新 2 +++
我通过向测试文件夹添加一个空的 __init__.py
文件,设法 运行 获得了它。另一件事是,我已经适应了上述文档中的文件夹结构,并且 运行 根文件夹中的以下请求:
pytest .
结果,测试执行成功。这是我创建的示例存储库: github.com/DSpirit/azure-functions-python-unit-testing