簡體   English   中英

無法在Windows上導入conftest.py

[英]Cannot import conftest.py on Windows

一般來說,我對pytest和創建包(模塊)都很陌生。 我用pytest編寫了一些測試,直到我重構了腳本結構。 這實際上是必要的,因為有很多腳本,它的定位非常混亂。 當前目錄結構看起來像這樣:

C:\Users\local\workspace
         .+---tools
             +---base
                 +---__init__.py
                 +---conftest.py
                 +---script1.py
                 +---script2.py
             +---misc
                 +---__init__.py
                 +---run.py
             +---__init__.py

script1.pyscript2.py包含一些用於測試的類和特殊類。 我被告知conftest.py應該與頂級測試文件位於同一個文件夾中,所以我把它放到base目錄中。

我通過以下方式從run.py運行pytest:

pytest_args = workspace + "/tools/base/script1.py "
pytest_args += workspace + "/tools/base/script2.py"
pytest.main(pytest_args)

其中workspace包含c:/Users/local/workspace 我收到此錯誤:

Traceback (most recent call last):
  File "c:\Python27\Lib\_pytest\config.py", line 543, in importconftest
    mod = conftestpath.pyimport()
  File "c:\Python27\Lib\py\_path\local.py", line 660, in pyimport
     raise self.ImportMismatchError(modname, modfile, self)
 ImportMismatchError: ('tools.base.conftest', 'c:/Users/local/workspace\\jenkins\\tools\\base\\conftest.py', local('c:\\Users\\wokspace\\tools\\base\\conftest.py'))
 ERROR: could not load c:\Users\local\workspace\tools\base\conftest.py

我真的不知道,如何解決這個問題。 當所有腳本都在同一個文件夾中(並且沒有__init__.py )時,一切正常。 其他腳本工作正常(我的意思是依賴,其中一些腳本需要來自其他目錄的模塊),只是pytest失敗了。

奇怪的是,在Linux發行版上,這很好用。 我猜Windows路徑存在問題,這似乎是pytest的一個真正問題。 你有任何想法如何解決這個問題嗎?

謝謝

我遇到了類似的問題,最終修復它的是刪除我所有的__pycache__目錄和.pyc文件。

暫無
暫無

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

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