博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python单元测试工具
阅读量:4200 次
发布时间:2019-05-26

本文共 1996 字,大约阅读时间需要 6 分钟。

1. unittest 简介

这是标准库也是最常见的Python单元测试框架,它基于Java的JUnit框架,最初由Steve Purcell编写(以前称为PyUnit)

unittest基本上提供了Java中的Junit框架的功能。它提供了一个名为TestCase的基类,它有一组广泛的方法来验证函数调用和语句的输出。

该模块是为编写单元测试而创建的,但是只要测试使用用户接口,验收测试也可以用它来编写。例如,一些测试框架提供帮助,在unittest之上驱动工具,如Selenium。

2. unittest 使用

使用unittest为一个模块编写一个简单的单元测试,这是通过继承TestCase类并且使用test前缀来编写方法来完成的。测试驱动开发原则部分的最后一个例子

import unittestclass MyTests(unittest.TestCase):    def test_print(self):        print("test1")    def test_print2(self):        print("test2")    def atest_print2(self):        print("test3")if __name__ == "__main__":    unittest.main()

运行结果:

============================= test session starts ==============================platform darwin -- Python 3.7.4, pytest-4.6.3, py-1.8.0, pluggy-0.12.0rootdir: collected 2 itemstest2.py .test1.test2                                                   [100%]=========================== 2 passed in 0.02 seconds ===========================Process finished with exit code 0

unittest.main()函数是一个通用程序,它允许将整个模块作为一个测试套件执行

unittest.main()函数扫描当前模块的上下文,并查找TestCase类的子类。它实例化这些子类,然后运行所有以test作为前缀开头的方法。

如果单独调用某个测试任务可以执行: python test.py MyTests.test_print (修改为实际对应的函数就可以)

3. unittest 的 TestSuite类

unittest提供了一个TestSuite类,可以聚合测试并将它们作为测试活动运行,只要它们都是TestCase或TestSuite的实例。

在以往的Python中,有这样一个约定,测试模块提供一个test_suite函数,该函数返回一个TestSuite实例,当模块被命令提示符调用或被测试运行器使用时,在__main__部分会调用它

# -*- coding: utf-8 -*-import unittestclass MyTests(unittest.TestCase):    def test_print(self):        print("test1")    def test_print2(self):        print("test2")    def atest_print2(self):        print("test3")class OtherTests(unittest.TestCase):    def test_print(self):        print("test4")    def test_print2(self):        print("test5")    def atest_print2(self):        print("test6")def test_suite():    # 构建测试套件    suite = unittest.TestSuite()    suite.addTests(unittest.makeSuite(MyTests))    suite.addTests(unittest.makeSuite(OtherTests))    return suiteif __name__ == "__main__":    unittest.main(defaultTest='test_suite')

4. 其他三方测试工具

  • nose
  • py.test

转载地址:http://imfli.baihongyu.com/

你可能感兴趣的文章
ClassLoader类加载机制
查看>>
风控相关
查看>>
rxJava例子
查看>>
Java适合用于ETL?
查看>>
日志分析方法概述
查看>>
简单安装Mysql(linux centos)
查看>>
hive安装 (hive1.2.1+hadoop2.7+mysql)
查看>>
配置spark令其支持hive
查看>>
调度工具:Airflow
查看>>
Mysql存储引擎比较
查看>>
微服务实践总结
查看>>
序列模式PrefixSpan算法介绍
查看>>
实时流处理Storm、Spark Streaming、Samza、Flink孰优孰劣
查看>>
Hbase centos下单机安装
查看>>
weblogic单机安装(centos/linux)
查看>>
Tomcat单机安装(centos/linux)
查看>>
SpringCloud分布式开发五大神兽
查看>>
Tableau 10.3 简单Dashboard创建
查看>>
IBM Cognos 11 简单Dashboard创建
查看>>
随想 110715
查看>>