Pytest執行用例報Hint: make sure your test modules/packages have valid Python names.


近日,使用Pytest+Appium 實現APP端UI自動化,遇到Pytest收集用例失敗的情況。

 

報錯信息如下:

test_room.py:None (test_room.py) ImportError while importing test module '/Users/XXXX/case/test_room.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: test_room.py:5: in <module> from Page.init_page import InitPage ../Page/init_page.py:8: in <module> from Page.home_page import HomePage ../Page/home_page.py:4: in <module> from Page.room_page import RoomPage ../Page/room_page.py:5: in <module> from Page.home_page import HomePage E ImportError: cannot import name 'HomePage' from 'Page.home_page' (/Users/XXXX/Page/home_page.py) 

目錄結構如下:

 

 

報錯原因分析:

主要是因為home_page.py和room_page.py這兩個文件內的類之間有相互調用引起的

  • home_page.py涉及代碼:
from Page.room_page import RoomPage class HomePage(BasePage): def goto_room(self): self.find_element_until_visibility(self._room).click() return RoomPage(self.driver) 
  • room_page.py涉及代碼:
from Page.home_page import HomePage class RoomPage(BasePage): def back_home_page(self): self.find_element_until_visibility(self._back_btn).click() return HomePage(self.driver) 

解決辦法

直接將room_page.py涉及到的HomePage的引用直接放到特定的函數中引用,而不是整個文件的引用

  • 解決后room_page.py涉及代碼:

class RoomPage(BasePage): def back_home_page(self): self.find_element_until_visibility(self._back_btn).click() from Page.home_page import HomePage return HomePage(self.driver)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM