unittest批量执行测试用例

本文介绍如何使用unittest模块批量执行多个Python测试用例。通过创建alltest.py文件,利用TestLoader().discover()方法,可以自动查找并执行指定目录下符合特定命名规则的所有测试用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现有四个测试用例分别在两个.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

  

转载于:https://www.cnblogs.com/1510152012huang/p/10691576.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值