現有四個測試用例分別在兩個.py文件中,如何執行這些文件?
unittest中有這樣處理:unittest.TestLoader().discover()
第一個文件test_case1.py
from selenium import webdriver
import unittest
class Baidu_Link(unittest.TestCase):
def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.get("http://www.baidu.com/")
def tearDown(self) -> None:
self.driver.quit()
def test_baidu_news(self):
''''點擊百度首頁的新聞,看是否可以正常跳轉'''
self.driver.find_element_by_link_text("新聞").click()
self.assertEqual(self.driver.current_url, "http://news.baidu.com/")
def test_baidu_map(self):
'''點擊百度首頁的地圖,看是否可以正常跳轉'''
self.driver.find_element_by_link_text("地圖").click()
self.assertEqual(self.driver.current_url, "https://map.baidu.com/@13225221.26,3748918.53,12z")
if __name__ == "__main__":
unittest.main(verbosity=2)
第二個.py文件:test_case2.py
import unittest
from selenium import webdriver
class Baidu_search(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("http://www.baidu.com")
def tearDown(self):
self.driver.quit()
def test_baidu_enbale(self):
'''測試百度首頁的輸入框可編輯'''
su = self.driver.find_element_by_id("kw")
self.assertTrue(su.is_enabled())
def test_baidu_search(self):
'''測試百度首頁的輸入框可以搜索'''
search = self.driver.find_element_by_id("kw")
search.send_keys("大數據")
self.driver.find_element_by_id("su").click()
self.assertEqual(search.get_attribute("value"), "大數據")
if __name__ == "__main__":
unittest.main(verbosity=2)
這兩個文件怎么批量執行?
建立新的.py文件alltest.py
import unittest
import os
def allTest():
suite = unittest.TestLoader().discover(
start_dir=os.path.dirname(__file__),#文件地址
pattern="test_*.py",#文件類型
top_level_dir=None)
return suite
def run():
unittest.TextTestRunner(verbosity=2).run(allTest())
if __name__ == "__main__":
run()
執行結果:
test_baidu_map (test_case1.Baidu_Link) 點擊百度首頁的地圖,看是否可以正常跳轉 ... ok test_baidu_news (test_case1.Baidu_Link) '點擊百度首頁的新聞,看是否可以正常跳轉 ... ok test_baidu_enbale (test_case2.Baidu_search) 測試百度首頁的輸入框可編輯 ... ok test_baidu_search (test_case2.Baidu_search) 測試百度首頁的輸入框可以搜索 ... ok ---------------------------------------------------------------------- Ran 4 tests in 40.277s OK
