zoukankan      html  css  js  c++  java
  • unittest测试用例的执行顺序

    unittest的测试顺序为:有几个测试用例,测试固件就会执行多少次。

    例如:只有一个测试用例时:

    setup--testcase1--teardown

    import unittest
    
    class F1(unittest.TestCase):
        def setUp(self):
            print("准备工作已经做好")
    
        def tearDown(self):
            print("处理完成")
    
        def test_case1(self):
            print("执行测试用例1")
    
    if __name__ == "__main__":
        unittest.main()
    

    测试结果如下:

    Ran 1 test in 0.015s
    
    OK
    准备工作已经做好
    执行测试用例1
    处理完成
    

    例如:有多个测试用例时

    setup--testcase1--teardown--setup--tescase2--teardown--setup--testcase3

    import unittest
    
    class F1(unittest.TestCase):
        def setUp(self):
            print("准备工作已经做好")
    
        def tearDown(self):
            print("处理完成")
    
        def test_case1(self):
            print("执行测试用例1")
    
        def test_case2(self):
            print("执行测试用例2")
    
        def test_case3(self):
            print("执行测试用例3")
    
        def test_case4(self):
            print("执行测试用例4")
    
    if __name__ == "__main__":
        unittest.main()
    

    结果如下:

    Ran 4 tests in 0.005s
    
    OK
    准备工作已经做好
    执行测试用例1
    处理完成
    准备工作已经做好
    执行测试用例2
    处理完成
    准备工作已经做好
    执行测试用例3
    处理完成
    准备工作已经做好
    执行测试用例4
    处理完成
    

    总结:当有多个测试用例,然而只想执行其中的一个时,把鼠标放到想执行的测试用例上,右键执行。当全部执行时,放在最后的if语句上。

    在unittest中,测试用例的执行顺序与测试用例的名称有关,按照名称的ascii码进行的,并不是按照用户写的顺序执行的。

    import unittest
    from selenium import webdriver
    
    class F2(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
            cls.driver.maximize_window()
            cls.driver.implicitly_wait(30)
            cls.driver.get("http://www.baidu.com/")
           
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
        def test_baidu_news(self):
            self.driver.find_element_by_link_text("新闻").click()
            self.driver.back()
    
        def test_baidu_map(self):
            self.driver.find_element_by_link_text("地图").click()
            self.driver.back()
            
    if __name__ == "__main__":
        unittest.m
    

    执行上段代码时发现,程序先执行的test_baidu_map,后执行的test_baidu_news。

  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/1510152012huang/p/10684862.html
Copyright © 2011-2022 走看看