簡體   English   中英

Nosetest和進口

[英]Nosetest & import

我對Python很陌生。 目前,我正在嘗試PyCharm,並且遇到一些奇怪的行為,在運行測試時無法解釋。

我當前正在處理的項目位於名為PythonPlayground的文件夾中。 此文件夾包含一些子目錄。 每個文件夾都包含一個init .py文件。 一些文件夾包含鼻子測試。

當我從項目目錄中的命令行使用鼻子測試運行器運行測試時,必須將“ PythonPlayground”放在所有本地導入文件的前面。 例如,在“ ui”文件夾中導入名為“ model”的模塊時,我必須像這樣導入它:

從PythonPlayground.ui.model導入*

但是,當我從Pycharm內部運行測試時,必須再次刪除領先的“ PythonPlayground”,否則測試將無法正常工作。 像這樣:

從ui.model import *

我也在嘗試模擬框架,由於某種原因,該框架始終需要模塊的完整名稱(包括“ PythonPlayground”)。 無論是從命令行還是從PyCharm內部運行測試,都沒有關系:

使用patch('PythonPlayground.ui.models.User')作為模擬:

有人可以向我解釋行為上的差異嗎? 正確的行為是什么?

我認為發生這種情況是因為PyCharm具有自己的解釋器“副本”,這些解釋器具有其自己的sys路徑版本,您在其中將項目的根目錄設置為比PythonPlayground目錄低一級的目錄。 您可以在您的項目的PyCharm中找到解釋器的首選項,並設置適當的最高級別。 ps。 我有同樣的問題,但是在Eclipse + pydev中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM