Unittest框架怎么在Python项目中使用
Unittest框架怎么在Python项目中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Unittest
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)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...