51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 714|回复: 0
打印 上一主题 下一主题

[转贴] unittest执行测试用例有哪几种方式?我整理好几种呢

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:11
  • 签到天数: 936 天

    连续签到: 3 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-5-25 10:47:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     前言
      在我们实际工作当中,我们经常会用到unittest框架来执行用例,进行冒烟测试。如果你不懂冒烟测试。
      通过unittest.main()来执行测试用例的方式:
    1.  import unittest
    2.   
    3.   class UCTestCase(unittest.TestCase):
    4.       def setUp(self):
    5.           #测试前需执行的操作
    6.           .....
    7.       def tearDown(self):
    8.           #测试用例执行完后所需执行的操作
    9.        
    10.       # 测试用例1
    11.       def test1(self):
    12.           #具体的测试脚本
    13.         
    14.       # 测试用例2
    15.       def test2(self):
    16.           #具体的测试脚本
    17.         
    18.   if __name__ == "__main__":
    19.       # 运行所有的用例
    20.       unittest.main()
    复制代码
    通过testsuit来执行测试用例的方式:
      如果想只想运用某一个用例呢?怎么办?使用套件然后传入测试用例的方法名即可,看实例:
    1. import unittest
    2.   # 执行测试的类
    3.   class UCTestCase(unittest.TestCase):
    4.       def setUp(self):
    5.           #测试前需执行的操作
    6.         
    7.       def tearDown(self):
    8.           #测试用例执行完后所需执行的操作
    9.        
    10.       # 测试用例1
    11.       def test1(self):
    12.           #具体的测试脚本
    13.         
    14.       # 测试用例2
    15.       def test2(self):
    16.           #具体的测试脚本
    17.         
    18.   if __name__ == "__main__":
    19.       # 构造测试集
    20.       suite = unittest.TestSuite()
    21.       suite.addTest(UCTestCase("test1"))
    22.       suite.addTest(UCTestCase("test2"))
    23.       # 执行测试
    24.       runner = unittest.TextTestRunner()
    25.       runner.run(suite)
    复制代码
    通过testLoader方式:
      如果有多个类的情况下,我想运行某个类下面的测试用例呢?通过testLoader:
    1.  import unittest
    2.   class TestCase1(unittest.TestCase):
    3.       def testCase1(self):
    4.       print("a")
    5.       def testCase2(self):
    6.       print("b")
    7.   
    8.   class TestCase2(unittest.TestCase):
    9.       def testCase1(self):
    10.           print("a1")
    11.       def testCase2(self):
    12.           print("b1")
    13.   
    14.   if __name__ == "__main__":
    15.       #此用法可以同时测试多个类
    16.       suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
    17.       suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
    18.       suite = unittest.TestSuite([suite1, suite2])
    复制代码
    通过discover方式加载某路径下的所有测试用例
     import unittest
      # discover可以一次调用多个脚本
      # test_dir 被测试脚本的路径
      # pattern 脚本名称匹配规则
      test_dir = "./test_case"
      discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py")
      # 匹配test_case目录下所有以test开头的py文件,执行这些py文件下的所有测试用例
      if __name__ == "__main__":
          runner=unittest.TextTestRunner()
          runner.run(discover)






    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-25 07:29 , Processed in 0.064903 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表