ImportError: Start directory is not importable: './test_case'怎麼解決?已附上詳細程式碼和專案結果說明。
1、Pge object封裝:youdao_page.py存放於Page資料夾。
from poium import Page, NewPageElement
class YoudaoPage(Page):
search_box = NewPageElement(id_ = "com.youdao.dict:id/search_input_box")
search_button = NewPageElement(class_name = "android.widget.ImageView")
search_result =NewPageElement(id_ = "com.youdao.dict:id/tv_word")
2、APP啟動模組封裝:my_test.py存放於common資料夾。
import unittest,time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import sys
from os.path import dirname, abspath
BASE_PATH = dirname(dirname(abspath(file)))
sys.path.append(BASE_PATH)
caps = {}
caps["deviceName"] = "HWJSN-HW"
caps["automationName"] = "appium"
caps["platformVersion"] = "10"
caps["platformName"] = "Android"
caps["appPackage"] = "com.youdao.dict"
caps["appActivity"] = ".activity.MainActivity"
caps["ensureWebviewsHavePages"] = True
class MyTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
cls.driver.implicitly_wait(10)
try:
loc = ("xpath", "//*[@text='始終允許']")
el = WebDriverWait(cls.driver, 5, 0.5).until(EC.presence_of_element_located(loc))
TouchAction(cls.driver).tap(el).perform()
except:
pass
@classmethod
def tearDownClass(cls):
cls.driver.quit()
if name=="main":
unittest.main()
3、測試用列封裝:test_word_search.py存放於test_case資料夾:
import unittest
import sys
from os.path import dirname, abspath
BASE_PATH = dirname(dirname(abspath(file)))
sys.path.append(BASE_PATH)
from common.my_test import MyTest
from page.youdao_page import YoudaoPage
class TestYoudaoSearch(MyTest):
def test_search_clear(self):
"""定義搜尋關鍵字:clear"""
page = YoudaoPage(self.driver)
page.search_box.click()
page.search_box = "clear"
page.search_button.click()
print(page.search_result.text)
self.assertEqual("clear", page.search_result.text)
if name=="main":
unittest.main()
4、執行測試封裝:run_tests.py存放於test_report資料夾。
import unittest
import time
import yagmail
from HTMLTestRunner import HTMLTestRunner
def send_mail(report):
yag = yagmail.SMTP(user = "%%%%@163.com",
password = "XESWYPMRUGLMIOYY",
host = "smtp.163.com")
subject = "主題:自動化測試報告"
contents = "請檢視郵件"
yag.send("%%%%@163.com",subject, contents, report)
print("email has send out")
if name == "main":
test_dir = './test_case'
suit = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
now_time = time.strftime("%Y-%m-%d %H_%M_%S")
html_report = now_time + "youdao.html"
with open(html_report,"wb") as fp:
runner = HTMLTestRunner(stream=fp, title="youdao",
description="android",
verbosity=2)
runner.run(suit)
fp.close()
4、以上所有資料夾都存放於appium project資料夾內,每個資料夾也放置了 名為init.py的空檔案。
但執行測試回報如題所示的錯誤。請問是什麼原因造成的,怎麼解決?
相關文章
- ImportError: Start directory is not importable: './test_case'怎麼解決?ImportError
- mydumper備份資料庫詳解(已詳細說明)資料庫
- nginx 詳解 – 詳細配置說明Nginx
- nginx 詳解 - 詳細配置說明Nginx
- Nginx配置檔案詳細說明Nginx
- Python Matplotlib add_subplot 和 subplots_adjust詳解及程式碼詳細說明 配圖片說明Python
- MVVM 模式下iOS專案目錄結構詳細說明MVVM模式iOS
- session的詳細說明和用法Session
- gitbook no such file or directory 怎麼解決Git
- SecurecRT亂碼怎麼辦?詳細解決方法分享~Securecrt
- winscp操作說明,winscp操作說明的詳細解讀
- mysql processlist詳細說明MySql
- NFT/Stepn跑鞋鏈遊專案/系統開發/方案詳細/技術詳情/原始碼說明原始碼
- mysqldump引數詳細說明MySql
- mysql replace into用法詳細說明MySql
- redis info命令詳細說明Redis
- Emacs詳細使用說明(轉)Mac
- memset函式詳細說明函式
- redis配置檔案redis.conf詳細說明Redis
- Flask-Limit使用詳細說明FlaskMIT
- Linux sed命令詳細說明Linux
- VNC安裝配置詳細說明VNC
- CocoaPods | iOS詳細使用說明iOS
- 總帳介面表詳細說明
- 網路交換機功能和原理的詳細說明
- MySQL監控專案指標值解釋和說明MySql指標
- lodash已死?radash最全使用介紹(附原始碼詳細說明)—— Array方法篇(1)原始碼
- CH9434-MCU程式碼移植,晶片使用詳細說明(附Linux開發資料連結)晶片Linux
- FastQC結果詳解AST
- 流量控制工具TC詳細說明
- sql server系統表詳細說明SQLServer
- mysql uninstall plugins 詳細說明MySqlPlugin
- jpa 方法 命名規則 詳細說明
- 專案需求說明書
- 深圳企業辦理等保備案流程詳細說明
- ios加固,ios程式碼混淆,ios程式碼混淆工具, iOS原始碼混淆使用說明詳解iOS原始碼
- 阿里雲物聯網平臺專用工具詳細說明阿里
- 支付寶程式碼示例結構說明