暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

单元测试框架unittest

原创 check 2022-06-22
342

unittest 是python 语言的单元测试框架,提供了创建测试用例、测试套件和批量执行测试用例的方案。

  利用单元测试框架,可以创建一个类,该类继承 unttest 的 TestCase ,这样可以把每个 TestCase 看成是一个最小的单位,由测试套件组织起来,运行时直接执行即可,同时可以引入测试报告。

一、测试固件

  测试固件用于处理初始化操作,可以使测试固件只执行一次。

1、测试固件每次均执行

  unittest 单元测试框架中,提供了setUp 和 tesrDown 的测试固件。

+ View Code

  执行顺序是先执行 setUp 方法,再执行 test_baidu_so 或者 test_baidu_hi 其中一个,最后执行 tearDown 方法。有N个用例,setUp 方法、tearDown 方法 都会执行N次。

2、测试固件只执行一次

  使用 setUpClass 和 tearDownClass 方法。

+ View Code

  有N个用例,setUpClass 和 tearDownClass 方法 只会执行1次。

  但有一个问题,如:以百度首页测试点击新闻页面和测试点击地图页面为例,意味着点击新闻页面后,需要回到百度首页后才可以找得到地图页面的链接进行点击。

  所以,在实际的工作中,尽量使用测试固件 setUp 和 tearDown ,使得自动化测试用例之间没有关联性,避免一个测试用例执行失败是由于上一个测试用例导致的。

二、测试执行

  测试用例的执行是在主函数中,unittest 调用的是 main,代码如下:

1

main = TestProgram

  TestProgram 还是一个类,该类的构造函数如下代码:

+ View Code

  在 unittest 模块中包含的 main 方法,可以方便地将测试模块变为可以运行的测试脚本。main 使用 unittest.TestLoader 类来自动查找和加载模块内的测试用例,TestProgram 类中该部分的代码如下:

+ View Code

  在执行测试用例时,在 mian 方法中加入了 verbosity=2,代码如下:

1

unittest.main(verbosity=2)

  verbosity 中默认是 1 ,0 代表执行的测试总数和全局结果,2 代表显示详细的信息。

  verbosity=2 时,成功的测试用例会显示 OK,失败的测试用例会显示出详细的信息。

  如果想单独地执行某一测试,用鼠标右键点击要执行的测试用例名称,选择“Run”。

三、构建测试套件

  一个测试类中会有很多个测试用例,unittest 提供了“测试套件”方法,它由 unittest 模块中的 TestSuite 类表示,测试套件可以根据所测试的特性把测试用例组合在一起。

1、按顺序执行

  TestSuite 类中提供了 addTest 方法可以实现测试用例按顺序执行,要执行的测试用例按自己期望执行顺序添加到测试套件中。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论