繁体   English   中英

Azure DevOps 找不到 python 模块

[英]Azure DevOps can't find python module

我正在尝试使用 Azure DevOps 从 python 模块运行测试。 我已经建立了一个管道构建来构建一个 yml 文件。 我收到一个错误,我的导入中的模块名称不正确,但看起来模块名称没有在构建中设置?

当我在本地运行它时,它工作得很好。

模块 repo 文件结构:

api_check
api_check/auth
api_check/etc
api_check/__init__.py

我在我的 yml 文件中使用以下内容运行测试: - 脚本: | mkdir 日志 pytest -m 烟雾 --junitxml=logs/test-results.xml --ENV=prod displayName: '用 pytest 测试'

这一步出现以下错误:

2018-10-11T21:51:02.9825682Z _______________________ ERROR collecting test_search.py ________________________
2018-10-11T21:51:02.9826322Z ImportError while importing test module '/home/vsts/work/1/s/test_search.py'.
2018-10-11T21:51:02.9826804Z Hint: make sure your test modules/packages have valid Python names.
2018-10-11T21:51:02.9827123Z Traceback:
2018-10-11T21:51:02.9827411Z test_search.py:12: in <module>
2018-10-11T21:51:02.9827745Z     from api_check.auth import get_Token_UsernamePassword
2018-10-11T21:51:02.9828644Z E   ModuleNotFoundError: No module named 'api_check'

是否需要添加一些内容才能使构建识别模块 api_check? 我需要读入某种构建变量吗?

编辑以获取更多信息-

我正在从任何目录运行它,yml 文件从我的默认运行 - 基于调试日志,工作目录是/home/vsts/work/1/s 当我列出工作目录的内容时,我会看到我的模块的所有内容,我的 repo 中的所有内容都在api_check下。

所以,而不是我对拉下回购的期望:

$workingDirectory/api_check
$workingDirectory/api_check/auth
$workingDirectory/api_check/etc
$workingDirectory/api_check/__init__.py

而是:

$workingDirectory
$workingDirectory/auth
$workingDirectory/etc
$workingDirectory/__init__.py

所以看起来只是添加父目录api_check无济于事,因为似乎没有api_check目录。 是否有一些设置我可以在管道源中翻转以使其包含顶级文件夹api_check

事实证明,Azure 扩展了 repo,以便 repo 中的最高级别目录成为工作目录,而不是工作目录中。

为了解决我的问题,我将我的模块移到了我的 repo 中的二级目录。

例如,GitHub 存储库布局:

$repo/api_check
$repo/api_check/auth
$repo/api_check/etc
$repo/api_check/__init__.py

变成

$workingDirectory/api_check
$workingDirectory/api_check/auth
$workingDirectory/api_check/etc
$workingDirectory/api_check/__init__.py

可能有一种方法可以让 Azure 将 repo 扩展为工作目录中的子目录,但我还没有找到。

可以尝试删除根目录下的__init__.py ,应该可以解决问题。

您只需要使用以下命令执行测试:(使用 python -m)

python -m pytest -v test.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM