• 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。

  • 相关阅读:
    天行健宇宙的生与死
    知识库:maven打包时跳过测试
    oracle 行列转换
    C#格式化字符串
    存储过程的使用
    正则表达式
    怎么防止[SQL注入]
    11个月了.
    开通博客喽,
    别的程序员是怎么读你的简历的
  • 原文地址:https://www.cnblogs.com/1510152012huang/p/10684862.html
Copyright © 2020-2023  润新知