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

发表于:2022-4-25 09:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:码上开始    来源:51CTO博客

  前言
  在我们实际工作当中,我们经常会用到unittest框架来执行用例,进行冒烟测试。如果你不懂冒烟测试。
  通过unittest.main()来执行测试用例的方式:
  import unittest 
   
  class UCTestCase(unittest.TestCase):
      def setUp(self):
          #测试前需执行的操作
          .....
      def tearDown(self):
          #测试用例执行完后所需执行的操作
       
      # 测试用例1
      def test1(self):
          #具体的测试脚本
        
      # 测试用例2
      def test2(self):
          #具体的测试脚本
         
  if __name__ == "__main__":
      # 运行所有的用例
      unittest.main()

  通过testsuit来执行测试用例的方式:
  如果想只想运用某一个用例呢?怎么办?使用套件然后传入测试用例的方法名即可,看实例:
  import unittest 
  # 执行测试的类
  class UCTestCase(unittest.TestCase):
      def setUp(self):
          #测试前需执行的操作
        
      def tearDown(self):
          #测试用例执行完后所需执行的操作
       
      # 测试用例1
      def test1(self):
          #具体的测试脚本
        
      # 测试用例2
      def test2(self):
          #具体的测试脚本
         
  if __name__ == "__main__":
      # 构造测试集
      suite = unittest.TestSuite()
      suite.addTest(UCTestCase("test1"))
      suite.addTest(UCTestCase("test2"))
      # 执行测试
      runner = unittest.TextTestRunner()
      runner.run(suite)

  通过testLoader方式:
  如果有多个类的情况下,我想运行某个类下面的测试用例呢?通过testLoader:
  import unittest
  class TestCase1(unittest.TestCase):
      def testCase1(self):
      print("a")
      def testCase2(self):
      print("b")
   
  class TestCase2(unittest.TestCase):
      def testCase1(self):
          print("a1")
      def testCase2(self):
          print("b1")
   
  if __name__ == "__main__":
      #此用法可以同时测试多个类
      suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1)
      suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2)
      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)

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号