UnitTest

Posted autointerface

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnitTest相关的知识,希望对你有一定的参考价值。

1. 实例化: suite = unittest.TestSuite()
(suite:为TestSuite实例化的名称)
2. 添加用例:suite.addTest(ClassName("MethodName"))
(ClassName:为类名;MethodName:为方法名)
3. 添加扩展:suite.addTest(unittest.makeSuite(ClassName))
(搜索指定ClassName内test开头的方法并添加到测试套件中)

说明:TextTestRunner是用来执行测试用例和测试套件的
使用:
1. 实例化: runner = unittest.TextTestRunner()
2. 执行: runner.run(suite) # suite:为测试套件名称

TestLoader
suite = unittest.TestLoader().discover(test_dir, pattern=‘test*.py‘)
自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件
test_dir: 为指定的测试用例的目录
pattern:为查找的.py文件的格式,默认为‘test*.py‘
 
runner与loader的区别
1. TestSuite需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法)
2. TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法;

Fixture控制级别:
1. 方法级别 setUp(self)  tearDown(self)
2. 类级别  setUpClass(cls):  tearDownClass(cls)
3. 模块级别 setUpModule() tearDownModule()
断言 self.assertEqual(3, num)  self.assertTrue(is_ok)
异常类 AssertionError raise
img_path = "./imgs/img{}.png".format(time.strftime("%Y%m%d-%H%M%S"))
参数化
@parameterized.expand(build_data)[(),()]
@unittest.skip(‘代码未完成‘) v>
@unittest.skipIf(condition, reason)
示例代码
import unittest
version = 35
class TestSkip(unittest.TestCase):
@unittest.skip("代码未完成")
@unittest.skipIf(version <= 30, "版本
 
path="./report/{}.html".format(time.strftime("%Y%m%d%H%M%S"))
suite = unittest.TestLoader().discover(start_dir="./case/",pattern="test*.py") 不知道为什么没用
suite = unittest.makeSuite(My)
with open(path,"wb") as f:
runner = HTMLTestRunner(stream=f,description="是描述",title="标题")
runner.run(suite)
 

以上是关于UnitTest的主要内容,如果未能解决你的问题,请参考以下文章

python unittest

基于appium实现的线性代码引用unittest单元测试框架

python——unittest(单元测试)

SentTestCase 不会将 UnitTest 失败突出显示为代码错误

Python Unittest Discover即使失败也返回退出代码0

unittest2框架------执行原理