文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python中的Unittest框架的用法

2023-06-02 04:11

关注

本篇内容主要讲解“Python中的Unittest框架的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的Unittest框架的用法”吧!

  Unittest

  1.环境

  Unittest为Python内嵌的测试框架,不需要特殊配置,仅需要在File---settings---Tools----Python Intergrated Tools下配置框架为Unittest

  2.编写规范

  需要导入 import unittest

  测试类必须继承unittest.TestCase

  测试方法以 test_开头

  模块和类名没有要求

  3.Unittest介绍

  import unittest

  def add(x, y):

  return x + y

  def sub(x,y):

  return x - y

  class UnittestDemo(unittest.TestCase):

  def setUp(self):

  print("I an setup")

  def test_add(self):

  print("my first unit test demo----add")

  self.assertEqual(add(10,1),11,"assert equal")

  def test_sub(self):

  print("my first unit test demo----sub")

  self.assertEqual(sub(10, 1), 9, "assert equal2")

  @unittest.skip("i don't want to run this case.")

  def test_sub1(self):

  print("my first unit test demo----sub1")

  self.assertEqual(sub(10, 1), 9, "assert equal3")

  def tearDown(self):

  print("I an tearDown")

  setUp及TearDown

  方法级别的,类里面的每个方法调用一次

  def setUp(self):

  print("I an setup")

  setUpClass及tearDownClass

  类级别的,类里面的所有方法仅执行一次

  @classmethod

  def setUpClass(cls):

  print("I an setUpClass")

  setUpModule,tearDownModule

  模块级别的,执行模块里面类中的所有方法仅执行一次

  4.Unittest使用

  import unittest

  from unittest_task import UnittestDemo

  from HTMLTestRunner import HTMLTestRunner

  suite=unittest.TestSuite()#创建用例集合

  tests = [UnittestDemo("test_add"), UnittestDemo("test_sub"),UnittestDemo("test_sub1")]

  suite.addTests(tests)

  with open('HTMLReport.html', 'wb') as fi:

  runner = HTMLTestRunner(stream=fi,

  title = 'MathFunc Test Report',

  description='generated by HTMLTestRunner.',

  verbosity=2

  )

  runner.run(suite)

  TestCase

  多个测试用例集合在一起,就是TestSuite

  TestSuite无锡看妇科的医院 http://www.ytsgfk120.com/

  多个测试用例集合在一起,就是TestSuite

  TestLoader

  用来加载TestCase到TestSuite中的

  TestRunner

  执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

  skip装饰器

  跳过某个用例不执行

  @unittest.skip("i don't want to run this case.")

  无条件跳过

  unittest.skip(reason)

  当condition为True时跳过

  unittest.skipIf(condition, reason)

  当condition为False时跳过

  unittest.skipUnless(condition, reason)

  self.skipTest('do not run this.')

  5.Unittest生成报告

  5.1 Unittest生成txt格式报告

  if __name__ == '__main__':

  suite = unittest.TestSuite()

  tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")]

  suite.addTests(tests)

  with open('UnittestTextReport.txt', 'a') as f:

  runner = unittest.TextTestRunner(stream=f, verbosity=2)

  runner.run(suite)

  运行该文件,就会发现目录下生成了’UnittestTextReport.txt,所有的执行报告均输出到了此文件中。

  verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告

  5.2 Unittest生成html格式报告

  with open('HTMLReport.html', 'wb') as fi:

  runner = HTMLTestRunner(stream=fi,

  title = 'MathFunc Test Report',

  description='generated by HTMLTestRunner.',

  verbosity=2

  )

  runner.run(suite)

  输出测试报告为HTML格式,unittest中htmltestrunner导出测试报告,可以修改htmltestrunner中的测试代码

到此,相信大家对“Python中的Unittest框架的用法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯