开始第一个用例

一、基础演示

import unittest

class TestClass(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print("类开始方法")
    @classmethod
    def tearDownClass(cls) -> None:
        print("类的后置方法")

def setUp(self) -> None: print("单条用例前置方法") def tearDown(self) -> None: print("单条用例后置方法")

def test_case1(self): print("测试主要过程111111") def test_case2(self): print("测试主要过程22222") if __name__ == '__main__': unittest.main() """ ============================= test session starts ============================= collecting ... collected 2 items test_01.py::TestClass::test_case1 类开始方法 单条用例前置方法 测试主要过程111111 单条用例后置方法 PASSED test_01.py::TestClass::test_case2 单条用例前置方法 测试主要过程22222 单条用例后置方法 PASSED 类的后置方法 ============================== 2 passed in 0.04s ============================== """ #总结:1.setup 是前置方法,单条用例测试前的准备等操作 # 2.teardown是后置方法,单条用例测试后的清理等操作 # 3.setupclass 是全部用例执行前的前置操作,例如:链接数据库 # 4.setdownclass是全部用例执行后的后置操作,例如:断开数据库

 

二、用例中的断言如何操作

import unittest

class TestClass(unittest.TestCase):    
    def test_case1(self):
        print("测试主要过程11111")
        self.assertIn("a","tom", "报错信息:a不在Tom中") #断言a在tom中
        self.assertEqual(1, 2, "1和2不相等") 

 

 

 

 三、unittest有哪些断言方法

 

#参考地址:https://www.cnblogs.com/NancyRM/p/8377721.html

 

 

 四、跳过用例,不执行某用例【类似continue】

#skip 方法和 skipIf方法
class TestClass(unittest.TestCase):

    @unittest.skip #直接跳过当前用例
    def test_case3(self):
        print("测试主要过程33333")

    @unittest.skipIf(1+1 == 2,"满足条件,暂时不执行此用例")
    def test_case4(self):
        print("测试主要过程33333")
if __name__ == '__main__':
        unittest.main()
"""
============================= test session starts =============================
collecting ... collected 2 items

test_01.py::TestClass::test_case3 
test_01.py::TestClass::test_case4 

============================= 2 skipped in 0.04s ==============================

Process finished with exit code 0
类开始方法
SKIPPED
Skipped
SKIPPED (满足条件,暂时不执行此用例)
Skipped: 满足条件,暂时不执行此用例
"""

 

五、执行用例方法:unittest.mian()

5.1 unittest.main()方法

if __name__ == '__main__':
        unittest.main() #执行全部用例
        unittest.main(verbosity=2) #执行指定用例

六、加入容器执行方法:TestSuite()

批量执行用例

第一步:先addtest

if __name__ == '__main__':
        suite = unittest.TestSuite()
suite.addTest(TestClass(
"test_case1")) #添加用例1 suite.addTest(TestDemo2("test_demo_09")) #添加用例2 unittest.TextTestRunner().run(suite)

第二步:配置文件路径

 第三步:执行run

#run运行即可
"""
============================= test session starts =============================
collecting ... collected 2 items

test_01.py::TestClass::test_case1 类开始方法
单条用例前置方法
测试主要过程11111
单条用例后置方法
类的后置方法

test_01.py::TestDemo2::test_demo_09 1111111
PASSED
============================== 2 passed in 0.04s ==============================
"""

批量执行类

if __name__ == '__main__':
        suite1 = unittest.TestLoader().loadTestsFromTestCase(TestClass) #参数为类名称
        # suite2 = unittest.TestLoader().loadTestsFromTestCase()

        suite = unittest.TestSuite([suite1]) #可以添加多个suite
        unittest.TextTestRunner(verbosity=2).run(suite)

 

 执行指定文件

if __name__ == '__main__':
        discover = unittest.defaultTestLoader.discover("./","test*.py") #文件路径
        unittest.TextTestRunner().run(discover)

 

posted @ 2022-08-19 08:40  zwx901323  阅读(29)  评论(0)    收藏  举报