当前位置: 首页 > news >正文

慈善总会网站建设方案/小广告公司如何起步

慈善总会网站建设方案,小广告公司如何起步,山西古建筑网站,免费网站建设一级大陆unittest官方文档摘录 翻译 reffer to: https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner 第一部分-使用 1、基本概念 1.1)unittest单元测试框架最初的灵感来自于JUnit,其特点有 支持测试自动化为测试共享setup和shutdown代码可…

unittest官方文档摘录 翻译 reffer to: https://docs.python.org/3/library/unittest.html#unittest.TextTestRunner

第一部分-使用

1、基本概念

1.1)unittest单元测试框架最初的灵感来自于JUnit,其特点有

  • 支持测试自动化
  • 为测试共享setup和shutdown代码
  • 可以把单个测试集合成测试用例集
  • 将测试报告框架和测试用例独立开来

1.2)unittest支持的面向对象的重要理念

  • test fixture
    测试固件:表示一个或多个测试用例需要的准备,以及关联的清理操作,例如:创建临时DB、目录或启动一个进程

  • test case
    测试用例: 一个独立的测试单元,它校验一组输入得到的一个指定的响应,unittest提供一个基类TestCase,用来创建新的测试用例

  • test suite
    测试套件: 一个测试用例的集合,用来集合应该被一起执行的测试用例

  • test runner
    测试执行组件: 安排测试的执行并给用户提供结果

2、简单实例

unittest库提供了一系列丰富的工具来构建和执行测试,下面讲一下可以满足大部分用户需求的一个小的工具子集

import unittestclass TestStringMethods(unittest.TestCase):def test_upper(self):self.assertEqual('foo'.upper(), 'FOO')def test_isupper(self):self.assertTrue('FOO'.isupper())self.assertFalse('Foo'.isupper())def test_split(self):s = 'hello world'self.assertEqual(s.split(), ['hello', 'world'])# check that s.split fails when the separator is not a stringwith self.assertRaises(TypeError):s.split(2)if __name__ == '__main__':unittest.main()
  • 测试用例继承TestCase类,单个测试方法需要已test开头,这样便于告诉test runner哪些方法代表测试用例
  • 每一个测试均用到了断言行数assert*(),以便于test runner计算测试结果及生成测试报告
  • setUp()和tearDown()方法用于定义一些测试前后的操作
  • unittest.main()为测试脚本提供了一个命令行接口来运行测试

3、命令行执行测试的方式

# 您可以像这样执行一个测试模块:
python -m unittest test_module1 test_module2
# 也可以执行一个测试类,如:
python -m unittest test_module.TestClass
# 或者单独执行一个测试方法
python -m unittest test_module.TestClass.test_method

4、组织测试代码

  • 测试用例: 单元测试的基础组成模块是 测试用例--必须建立起来并且完成正确性校验的单个场景
  • 编写用例的规范
    • 在unittest框架中,测试用例就是TestCase的实例,所以你必须继承TestCase类来写用例
    • 测试方法必须带self参数,用来单独运行或则组合运行用例
    • assert*()方法是TestCase类提供的,如果测试失败了,它会抛出解释性的说明,unittest则会把这个用例定义为失败,其他的异常都会被视为错误。
    • setUp()方法会在每一个test_func执行之前执行,同理的tearDown
    • 测试用例的执行顺序是测试方法名的字符串排序

自由组装测试套件

import unittestclass WidgetTestCase(unittest.TestCase):def setUp(self):self.widget = Widget('The widget')def tearDown(self):self.widget.dispose()

def suite():suite = unittest.TestSuite()suite.addTest(WidgetTestCase('test_default_widget_size'))suite.addTest(WidgetTestCase('test_widget_resize'))return suiteif __name__ == '__main__':runner = unittest.TextTestRunner()runner.run(suite())

5、跳过用例

5.1 跳过一个用例使用skip()装饰器就可以了,下面是几个实例

class MyTestCase(unittest.TestCase):@unittest.skip("demonstrating skipping")
def test_nothing(self):self.fail("shouldn't happen")@unittest.skipIf(mylib.__version__ < (1, 3),"not supported in this library version")
def test_format(self):# Tests that work for only a certain version of the library.pass@unittest.skipUnless(sys.platform.startswith("win"), "requires Windows")
def test_windows_support(self):# windows specific testing codepass  

第二部分-深入unittest APIs

1、Test cases 测试用例相关

unittest.TestCase(methodName="runTest")

  • TestCase类的实例展示了unittest宇宙中单元测试逻辑,这个类被设计为基类,由它的子类来实现特定的测试。
  • 这些子类实现test runner需要的接口,来让它控制测试用例和各个失败的检查和报告的测试方法
  • TestCase实例提供三类方法:
    • A: 用来运行测试: setUp() 、tearDown()、setUpClass()、tearDownClass()、run(result=None)、skipTest(reason)
    • B: 用来实现条件检查和报告失败assert*()
    • C: 一些查询信息的方法

2、Grouping tests 组织测试用例

unittest.TestSuite(tests=())

这个类代表一些单独测试用例或测试集的集合,TestSuite的对象有点像TestCase对象,除了它并不真正实现一个测试外,另外,它们用来集成需要一起运行的测试,下面是一些常用方法:

  • addTest(test) 向测试集中加入一个测试用例或测试集
  • addTests(tests) 添加多个test
  • run(result)运行suite关联的测试,收集测试结果放到result中
  • countTestCases()

3、Loading and running tests 加载并执行测试

class unittest.TestLoader

  • 用来通过测试类和或者测试模块创建测试集,这个类一般无需实例化,
  • 方法:
    • loadTestsFromTestCase(testCaseClass)
    • loadTestsFromModule(module, pattern=None)
    • loadTestsFromName(name, module=None)
    • loadTestsFromNames(names, module=None)
    • getTestCaseNames(testCaseClass)
    • discover(start_dir, pattern='test*.py', top_level_dir=None)

class unittest.TestResult

  • TestResult对象保存了测试集的测试结果
  • TestRunner.run()会返回一个TestResult实例,用于生成测试不报告用
    • 结果属性:errors、failures、skipped、testsRun

class unittest.TextTestResult(stream, descriptions, verbosity)

  • 用TextTestRunner对TestResult的实现
  • 方法:
    • _makeResult():通过运行run函数返回一个TestResult实例。
    • run(test): TextTestRunner的主入口,以TestSuite或TestCase为参数,并输出一个TestResult
    • unittest.main(*):一个从module中载入测试集并执行他们的命令行程序,为了方便测试模块执行。最简单的执行方式是:

--

# 执行一个module中的所有用例 
if __name__ == '__main__':unittest.main()

4、 Class and Module Fixtures

  • class及module级别的固件(Fixture)在测试套件TestSuite中已经实现, 当suite遇到一个新类中的测试用例时,前一个类先tearDown且新的类会setUp固件。Shared fixtures

转载于:https://www.cnblogs.com/chengtch/p/10590936.html

http://www.lbrq.cn/news/1096201.html

相关文章:

  • 如何做自己的独立的网站/浙江网络推广公司
  • 惠民县建设局网站/怎么在百度打广告
  • 成都哪里做网站/优化方案官方网站
  • 网站建设企业号助手/网站建设软件
  • 网站开发技术期末考试试题/个人网站首页设计
  • wap手机网站程序/韩国最新新闻
  • 学生网站做兼职/昆明抖音推广
  • 网站设计的公司/最佳bt磁力搜索引擎
  • 东莞网络营销网络培训学校/郑州网站关键词优化外包
  • 滨州正规网站建设哪家好/网站优化包括哪些
  • 杭州群游科技网站做的魔域/网站快速排名服务商
  • 做百度词条需要哪些网站/上海搜索排名优化
  • 旅游网站设计参考文献/商丘seo排名
  • 织梦网站建设培训班/百度自动点击器怎么用
  • 个人做的网站有什么危险/临沂百度seo
  • 帮忙做ppt赚钱的网站/seo做什么网站赚钱
  • 胶州网站建设/seo资源咨询
  • 广州品牌网站设计公司/百度竞价排名平台
  • 现在还有做网站的必要吗/楼市最新消息
  • 徐州建设工程材料检测预约网站/兰州做网站的公司
  • 简单企业网站模板免费/海南网站设计
  • wordpress分类自定义字段/seo推广培训费用
  • xxx学校校园网站建设实践/企业建站要多少钱
  • 恒丰建设集团有限公司 网站/女教师网课入侵录屏
  • 南通wap网站建设/上海网络营销seo
  • 重庆疫情今日最新消息/百度seo找哪里
  • 广州网站建设哪家强/南宁网站关键词推广
  • 易点科技网站建设/网站优化招商
  • 有没有做装修中介的网站/物联网开发
  • 游戏制作软件手机版下载/拼多多关键词优化是怎么弄的
  • STP 的原理
  • 亚远景-传统功能安全VS AI安全:ISO 8800填补的标准空白与实施难点
  • 网络基础DAY18-动态路由协议基础
  • 全星FMEA软件系统:FMEA、PC、PFD一体化管理的智能解决方案
  • 【bug】 jetson上opencv无法录制h264本地视频
  • 【c++】leetcode5 最长回文子串