未加星标

Python unittest模块简介

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

作者:杨冬 欢迎转载,也请保留这段声明。谢谢!

出处: https://andyyoung01.github.io/ 或 http://andyyoung01.16mb.com/

unittest测试框架是python的内置模块。它与其它语言的单元测试框架如JUnit类似。本文简单看一下此模块的使用。

unittest模块一般的使用流程如下:

import unittest 定义一个继承自unittest.TestCase的测试用例类 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。 定义测试用例,名字以test开头。 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。 调用unittest.main()启动测试 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

下面看一个基本的实例:

test.py

import unittest class TestStringMethods(unittest.TestCase): def setUp(self): pass 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 string with self.assertRaises(TypeError): s.split(2) def tearDown(self): pass if __name__ == '__main__': unittest.main()

使用python test.py运行该文件后,结果如下:

... ---------------------------------------------------------------------- Ran 3 tests in 0.000s OK

如果在测试脚本后面加入-v参数,如python test.py -v,则会显示更详细的测试信息:

test_isupper (__main__.TestStringMethods) ... ok test_split (__main__.TestStringMethods) ... ok test_upper (__main__.TestStringMethods) ... ok ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK

如果在一个文件夹中有多个测试源文件,要运行所有的这些源文件,对于每个文件都运行一个命令是非常烦人的。这时候使用test discovery就非常方便了。假设所有的测试源代码文件都保存在tests文件夹中,则只要运行 python -m unittest discover tests 就可以将该文件夹中所有的测试文件都运行一遍。

与unittest相关的更详细的其它信息可以在Python的官方文档中找到。

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: Python单元测试
分页:12
转载请注明
本文标题:Python unittest模块简介
本站链接:http://www.codesec.net/view/520784.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(41)