Python中的Unittest框架的用法

本篇内容主要讲解“Python中的Unittest框架的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的Unittest框架的用法”吧!

站在用户的角度思考问题,与客户深入沟通,找到梅列网站设计与梅列网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册、网络空间、企业邮箱。业务覆盖梅列地区。

Unittest

1.环境

Unittest为Python内嵌的测试框架,不需要特殊配置,仅需要在File---settings---Tools----Python Intergrated Tools下配置框架为Unittest

2.编写规范

需要导入 import unittest

测试类必须继承unittest.TestCase

测试方法以 test_开头

模块和类名没有要求

3.Unittest介绍

import unittest

def add(x, y):

return x + y

def sub(x,y):

return x - y

class UnittestDemo(unittest.TestCase):

def setUp(self):

print("I an setup")

def test_add(self):

print("my first unit test demo----add")

self.assertEqual(add(10,1),11,"assert equal")

def test_sub(self):

print("my first unit test demo----sub")

self.assertEqual(sub(10, 1), 9, "assert equal2")

@unittest.skip("i don't want to run this case.")

def test_sub1(self):

print("my first unit test demo----sub1")

self.assertEqual(sub(10, 1), 9, "assert equal3")

def tearDown(self):

print("I an tearDown")

setUp及TearDown

方法级别的,类里面的每个方法调用一次

def setUp(self):

print("I an setup")

setUpClass及tearDownClass

类级别的,类里面的所有方法仅执行一次

@classmethod

def setUpClass(cls):

print("I an setUpClass")

setUpModule,tearDownModule

模块级别的,执行模块里面类中的所有方法仅执行一次

4.Unittest使用

import unittest

from unittest_task import UnittestDemo

from HTMLTestRunner import HTMLTestRunner

suite=unittest.TestSuite()#创建用例集合

tests = [UnittestDemo("test_add"), UnittestDemo("test_sub"),UnittestDemo("test_sub1")]

suite.addTests(tests)

with open('HTMLReport.html', 'wb') as fi:

runner = HTMLTestRunner(stream=fi,

title = 'MathFunc Test Report',

description='generated by HTMLTestRunner.',

verbosity=2

)

runner.run(suite)

TestCase

多个测试用例集合在一起,就是TestSuite

TestSuite无锡看妇科的医院 http://www.ytsgfk120.com/

多个测试用例集合在一起,就是TestSuite

TestLoader

用来加载TestCase到TestSuite中的

TestRunner

执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

skip装饰器

跳过某个用例不执行

@unittest.skip("i don't want to run this case.")

无条件跳过

unittest.skip(reason)

当condition为True时跳过

unittest.skipIf(condition, reason)

当condition为False时跳过

unittest.skipUnless(condition, reason)

self.skipTest('do not run this.')

5.Unittest生成报告

5.1 Unittest生成txt格式报告

if __name__ == '__main__':

suite = unittest.TestSuite()

tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")]

suite.addTests(tests)

with open('UnittestTextReport.txt', 'a') as f:

runner = unittest.TextTestRunner(stream=f, verbosity=2)

runner.run(suite)

运行该文件,就会发现目录下生成了’UnittestTextReport.txt,所有的执行报告均输出到了此文件中。

verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告

5.2 Unittest生成html格式报告

with open('HTMLReport.html', 'wb') as fi:

runner = HTMLTestRunner(stream=fi,

title = 'MathFunc Test Report',

description='generated by HTMLTestRunner.',

verbosity=2

)

runner.run(suite)

输出测试报告为HTML格式,unittest中htmltestrunner导出测试报告,可以修改htmltestrunner中的测试代码

到此,相信大家对“Python中的Unittest框架的用法”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


新闻名称:Python中的Unittest框架的用法
文章地址:http://pwwzsj.com/article/jsgsij.html