Python从小白到高手实现系列一百七十三:达式Python 标准测试工具

这篇具有很好参考价值的文章主要介绍了Python从小白到高手实现系列一百七十三:达式Python 标准测试工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 在标准库中提供了两个主要模块来编写测试。 ● unittest(https://docs.python.org/3/library/unittest.html):这是标准库也是最常见 的Python 单元测试框架,它基于Java 的JUnit 框架,最初由Steve Purcell 编写(以 前称为PyUnit)。 ● doctest(https://docs.python.org/3/library/doctest.html):这是一个有读写能力的编 程测试工具,它带有交互式使用示例。 1.unittest unittest 基本上提供了Java 中的Junit 框架的功能。它提供了一个名为TestCase 的基类,它有一组广泛的方法来验证函数调用和语句的输出。 该模块是为编写单元测试而创建的,但是只要测试使用用户接口,验收测试也可以用 它来编写。例如,一些测试框架提供帮助,在unittest 之上驱动工具,如Selenium。 使用unittest 为一个模块编写一个简单的单元测试,这是通过继承TestCase 类并 且使用test 前缀来编写方法来完成的。测试驱动开发原则部分的最后一个例子,如下所示: import unittest from primes import is_prime class MyTests(unittest.TestCase): def test_is_prime(self): self.assertTrue(is_prime(5)) self.assertTrue(is_prime(7)) self.assertFalse(is_prime(8)) self.assertFalse(is_prime(0)) self.assertFalse(is_prime(1)) self.assertFalse(is_prime(-1)) self.assertFalse(is_prime(-3)) self.assertFalse(is_prime(-6)) if name == “main”: unittest.main() unittest.main()函数是一个通用程序,它允许将整个模块作为一个测试套件执行, 如下所示: $ python test_is_prime.py -v test_is_prime (main.MyTests) … ok

Ran 1 test in 0.000s OK unittest.main()函数扫描当前模块的上下文,并查找TestCase 类的子类。它实 例化这些子类,然后运行所有以test 作为前缀开头的方法。 一个好的测试套件遵循通用和一致的命名约定。例如,如果primes.py 模块中包含 is_prime 函数,则测试类可以命名为PrimesTests 并放入test_primes.py 文件中, 如下所示: import unittest from primes import is_prime class PrimesTests(unittest.TestCase): def test_is_prime(self): self.assertTrue(is_prime(5)) self.assertTrue(is_prime(7)) self.assertFalse(is_prime(8)) self.assertFalse(is_prime(0)) self.assertFalse(is_prime(1)) self.assertFalse(is_prime(-1)) self.assertFalse(is_prime(-3)) self.assertFalse(is_prime(-6)) if name == ‘main’: unittest.main() 从那里,每次在utils 模块中进行开发,就在test_primes 模块中编写更多的测试。 为了运行测试,test_primes 模块需要在上下文中获得primes 模块。这可以通过unittest.main() unittest.main()函数是一个通用程序,它允许将整个模块作为一个测试套件执行, 如下所示: $ python test_is_prime.py -v test_is_prime (main.MyTests) … ok

Ran 1 test in 0.000s OK unittest.main()函数扫描当前模块的上下文,并查找TestCase 类的子类。它实 例化这些子类,然后运行所有以test 作为前缀开头的方法。 一个好的测试套件遵循通用和一致的命名约定。例如,如果primes.py 模块中包含 is_prime 函数,则测试类可以命名为PrimesTests 并放入test_primes.py 文件中, 如下所示: import unittest from primes import is_prime class PrimesTests(unittest.TestCase): def test_is_prime(self): self.assertTrue(is_prime(5)) self.assertTrue(is_prime(7)) self.assertFalse(is_prime(8)) self.assertFalse(is_prime(0)) self.assertFalse(is_prime(1)) self.assertFalse(is_prime(-1)) self.assertFalse(is_prime(-3)) self.assertFalse(is_prime(-6)) if name == ‘main’: unittest.main() 从那里,每次在utils 模块中进行开发,就在test_primes 模块中编写更多的测试。 为了运行测试,test_primes 模块需要在上下文中获得primes 模块。这可以通过if name == ‘main’: unittest.main(defaultTest=‘test_suite’) 在shell 中运行此模块将打印测试活动输出,如下所示: $ python test_primes.py -v test_is_prime (main.PrimesTests) … ok test_true (main.OtherTests) … ok

Ran 2 tests in 0.001s OK 在旧版本的Python 中,unittest 模块没有正确的测试发现实用程序,就需要使用前 面的方法。通常,所有测试的运行都是通过一个全局脚本来完成的,该脚本浏览代码树寻 找测试并运行它们。这个过程被称为测试发现(test discovery),将在本章后面继续讨论。 现在,你应该只知道unittest 提供了一个简单的命令,可以从模块和包中发现带有test 前缀的所有测试,如下所示: $ python -m unittest -v test_is_prime (test_primes.PrimesTests) … ok test_true (test_primes.OtherTests) … ok

Ran 2 tests in 0.001s
OK
如果使用上述命令,则不需要手动定义__main__部分并调用unittest.main()函数。文章来源地址https://www.toymoban.com/news/detail-848385.html

到了这里,关于Python从小白到高手实现系列一百七十三:达式Python 标准测试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一百七十二、Flume——Flume采集Kafka数据写入HDFS中(亲测有效、附截图)

    作为日志采集工具Flume,它在项目中最常见的就是采集Kafka中的数据然后写入HDFS或者HBase中,这里就是用flume采集Kafka的数据导入HDFS中 kafka_2.13-3.0.0.tgz hadoop-3.1.3.tar.gz apache-flume-1.9.0-bin.tar.gz # cd  /home/hurys/dc_env/flume190/conf # vi  evaluation.properties ### Name agent, source, channels and sink ali

    2024年02月09日
    浏览(36)
  • C++之std::pair<uint64_t, size_t>应用实例(一百七十七)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2024年02月12日
    浏览(40)
  • 第二百七十七回

    我们在上一章回中介绍了\\\"DropdownMenu组件\\\"相关的内容,本章回中将介绍DropdownButton组件.闲话休提,让我们一起Talk Flutter吧。 我们在本章回中介绍的DropdownButton组件和上一章回中介绍的DropdownMenu组件类似,主要用来实现下拉菜单,不过该组件在外观上像一个带图标的按钮, 点击

    2024年01月21日
    浏览(44)
  • 冥想第七百七十九天

    1.今天五一劳动节,懒惰了火气也大,主要是因为车钥匙妈妈拿着自己已经走了三公里了。 2.感谢好心人帮忙把钥匙送过来。 3.今天带妈妈姥姥去了北龙湖。风景超好。 4.给pve爱快安装了证书。 5.感谢父母,感谢朋友,感谢家人,感谢不断进步的自己。

    2024年02月02日
    浏览(30)
  • [Python从零到壹] 七十三.图像识别及经典案例篇之图像去雾ACE算法和暗通道先验去雾算法实现

    十月太忙,还是写一篇吧!祝大家1024节日快乐O(∩_∩)O 欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家

    2024年01月17日
    浏览(35)
  • 软考高级系统架构设计师系列论文七十三:论中间件在SIM卡应用开发中的作用

    软考高级系统架构设计师:构件与中间件技术 我曾于近期参与过一个基于SIM卡应用的开发项目,并在项目中担任系统分析的工作。 在分析过程中,我们依据面向对象方法对系统进行了划分,其中许多的模块已有成熟的中间件产品可供使用。我们选择中间件产品的标准是:功

    2024年02月11日
    浏览(31)
  • Python爬虫 从小白到高手 各种最新案例! Urllib Xpath

    1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Url(淘宝)进行爬取网页,获取有用信息 解释2:使用程序模拟浏览器,去

    2024年02月10日
    浏览(30)
  • JAVA面试题分享一百六十三:Kafka如何实现延时推送?

    目录 一、延时队列定义 二、技术实现方案 1. Redis 2. Kafka 3. RabbitMQ 4. RocketMQ 三、Kafka延时队列背景 四、Kafka延时队列实现思路 六、Kafka延时队列架构图 七、kafka延时任务代码实现 1. KafkaDelayQueue:Kafka延迟队列 2. KafkaDelayQueueFactory:Kafka延迟队列工厂 3. KafkaPollListener:Kafka延迟队

    2024年02月04日
    浏览(53)
  • 架构设计内容分享(一百三十三):ES+Redis+MySQL高可用,如何试实现?

    目录 背景: ES 高可用方案: ES 双中心主备集群架构 ES 流量隔离三集群架构 ES 集群深度优化提升 会员 Redis 缓存方案: ES 近一秒延时导致的 Redis 缓存数据不一致问题的解决方案 Redis 双中心多集群架构 高可用会员主库方案: MySQL 双中心 Partition 集群方案 会员主库平滑迁移方

    2024年02月22日
    浏览(39)
  • 大数据Flink(七十三):SQL的滚动窗口(TUMBLE)

    文章目录 SQL的滚动窗口(TUMBLE) 滚动窗口定义 :滚动窗口将每个元素指定给指定窗口大小的窗口。滚动窗口具有固定大小,且不重叠。例如,指定一个大小为 5 分钟的滚动窗口。在这种情况下,Flink 将每隔 5 分钟开启一个新的窗口,其中每一条数都会划分到唯一一个 5 分钟

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包