Unittest框架怎么在Python项目中使用

Unittest框架怎么在Python项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Unittest

Unittest框架怎么在Python项目中使用

1.环境

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

2.编写规范

  • 需要导入 import unittest

  • 测试类必须继承unittest.TestCase

  • 测试方法以 test_开头

  • 模块和类名没有要求

3.Unittest介绍

importunittest

defadd(x,y):
returnx+y

defsub(x,y):
returnx-y

classUnittestDemo(unittest.TestCase):

defsetUp(self):
print("Iansetup")

deftest_add(self):
print("myfirstunittestdemo----add")
self.assertEqual(add(10,1),11,"assertequal")

deftest_sub(self):
print("myfirstunittestdemo----sub")
self.assertEqual(sub(10,1),9,"assertequal2")

@unittest.skip("idon'twanttorunthiscase.")
deftest_sub1(self):
print("myfirstunittestdemo----sub1")
self.assertEqual(sub(10,1),9,"assertequal3")

deftearDown(self):
print("IantearDown")

setUp及TearDown

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

defsetUp(self):
print("Iansetup")

setUpClass及tearDownClass

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

@classmethod
defsetUpClass(cls):
print("IansetUpClass")

setUpModule,tearDownModule

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

4.Unittest使用

importunittest

fromunittest_taskimportUnittestDemo
fromHTMLTestRunnerimportHTMLTestRunner


suite=unittest.TestSuite()#创建用例集合
tests=[UnittestDemo("test_add"),UnittestDemo("test_sub"),UnittestDemo("test_sub1")]
suite.addTests(tests)


withopen('HTMLReport.html','wb')asfi:
runner=HTMLTestRunner(stream=fi,
title='MathFuncTestReport',
description='generatedbyHTMLTestRunner.',
verbosity=2
)
runner.run(suite)

TestCase

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

TestSuite

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

TestLoader

用来加载TestCase到TestSuite中的

TestRunner

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

skip装饰器

跳过某个用例不执行

@unittest.skip("idon'twanttorunthiscase.")

无条件跳过

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)

withopen('UnittestTextReport.txt','a')asf:
runner=unittest.TextTestRunner(stream=f,verbosity=2)
runner.run(suite)

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

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

5.2 Unittest生成html格式报告

withopen('HTMLReport.html','wb')asfi:
runner=HTMLTestRunner(stream=fi,
title='MathFuncTestReport',
description='generatedbyHTMLTestRunner.',
verbosity=2
)
runner.run(suite)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2021-03-24 01:23:17
收藏
分享
海报
0 条评论
165
上一篇:怎么在vue项目中利用微信JS-SDK实现一个分享功能 下一篇:怎么在python中利用pdfminer3k读取PDF文档
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码