![](/img/trans.png)
[英]python can't find '__main__' module in '.py' in Azure Pipelines
[英]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.