国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解python單元測試框架unittest

2020-02-15 22:06:39
字體:
來源:轉載
供稿:網友

一:unittest是python自帶的一個單元測試框架,類似于java的junit,基本結構是類似的。

基本用法如下:

1.用import unittest導入unittest模塊

2.定義一個繼承自unittest.TestCase的測試用例類,如

class abcd(unittest.TestCase):

3.定義setUp和tearDown,這兩個方法與junit相同,即如果定義了則會在每個測試case執行前先執行setUp方法,執行完畢后執行tearDown方法。

4.定義測試用例,名字以test開頭,unittest會自動將test開頭的方法放入測試用例集中。

5.一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要是調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。

6.調用unittest.main()啟動測試

7.如果測試未通過,則會顯示e,并給出具體的錯誤(此處為程序問題導致)。如果測試失敗則顯示為f,測試通過為.,如有多個testcase,則結果依次顯示。

一個單testcase的簡單的例子:

# -*- coding:UTF-8 -*-'''Created on 2015年3月24日@author: Administrator'''import unittestfrom selenium import webdriverimport timeclass TestCase1(unittest.TestCase):  def setUp(self):    self.driver=webdriver.Firefox()    self.base_url="http://www.baidu.com"  def tearDown(self):    self.driver.quit()  def testCase1(self):    driver=self.driver    driver.get(self.base_url)    print "將窗口最大化"    driver.maximize_window()    time.sleep(10)if __name__ == "__main__":  unittest.main()

一個多testcase的例子:

# -*- coding:UTF-8 -*-'''Created on @author: Administrator'''from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support.ui import Selectfrom selenium.common.exceptions import NoSuchElementException,/  NoAlertPresentExceptionimport HTMLTestRunner#form selenium.common.exceptions import NoAlertPresentExceptionimport unittest, time, reclass Baidu(unittest.TestCase):  def setUp(self):    self.driver = webdriver.Firefox()    self.driver.implicitly_wait(30)    self.base_url = "http://www.baidu.com/?tn=98012088_4_dg&ch=3"    self.verificationErrors = []    self.accept_next_alert = True    self.driver.get(self.base_url)  def test_baidu_search(self):    '''百度搜索'''    driver = self.driver#    driver.get(self.base_url + "/")    try:      driver.find_element_by_id("kw").send_keys("selenium webdriver")      driver.find_element_by_id("su").click()    except:      driver.get_screenshot_as_file('D://workspace//python_prictise//src//error.png')    time.sleep(2)    driver.close()  def test_baidu_set(self):    '''百度新聞'''    driver = self.driver    driver.find_element_by_name("tj_trnews").click()    self.assertEqual(driver.title,u'百度新聞搜索——全球最大的中文新聞平臺',"switch to baidu news faile!")#    time.sleep(2)  def is_element_present(self, how, what):    try: self.driver.find_element(by=how, value=what)    except NoSuchElementException: return False    return True  def is_alert_present(self):    try: self.driver.switch_to_alert()    except NoAlertPresentException: return False    return True  def close_alert_and_get_its_text(self):    try:      alert = self.driver.switch_to_alert()      alert_text = alert.text      if self.accept_next_alert:        alert.accept()      else:        alert.dismiss()      return alert_text    finally: self.accept_next_alert = True  def tearDown(self):    self.driver.quit()    self.assertEqual([], self.verificationErrors)if __name__ == "__main__":    unittest.main()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄县| 宁城县| 霍城县| 怀宁县| 陕西省| 云阳县| 阳新县| 东宁县| 黎平县| 棋牌| 介休市| 扶沟县| 买车| 宣城市| 水富县| 尉氏县| 姜堰市| 芜湖市| 石楼县| 武功县| 金堂县| 长春市| 宝坻区| 广南县| 东至县| 丽水市| 城市| 房产| 涞源县| 阜宁县| 钦州市| 资兴市| 石门县| 勐海县| 曲沃县| 石楼县| 渝北区| 广宗县| 信宜市| 隆子县| 阿拉尔市|