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

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
多个测试用例集合在一起,就是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)看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联成都网站设计公司行业资讯频道,感谢您对创新互联成都网站设计公司的支持。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前名称:Unittest框架怎么在Python项目中使用-创新互联
网页链接:http://www.scyingshan.cn/article/dshhoo.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 