单元测试:pytest
命名规则
Pytest 单元测试中的类名和方法名必须是以 test 开头 , 执行中只能找到 test 开头的类和方法,比unittest更加严谨
前提条件:需要下载pytest-html模块(python自带的生成测试报告模块)
pip install pytest-html
Pytest调用语句
pytst . main ([ '-x' , '--html=./report.html' , 't12est000.py' ])
-x 出现一条测试用例失败就退出测试
-s: 显示 print 内容
Pytest的运行方式
. 点号,表示用例通过
F 表示失败 Failure
E 表示用例中存在异常 Error
拿取数据
-
from xml.dom import minidom
-
class ReadXml():
-
# def readxml(self):
-
# # parse解析哪个xml文件
-
# #../返回上一级 解析test01.xml
-
# #root随意起名
-
# root = minidom.parse("../data/test01.xml")
-
# #add对应的标签
-
# firstnode=root.getElementsByTagName("add")[0]
-
# #拿到add里面的数据 firstChild.data获取第一个
-
# secondnode=firstnode.getElementsByTagName("exepiton")[0].firstChild.data
-
# return secondnode
-
# # #打印
-
# # print(root)
-
-
# parse解析哪个xml文件
-
# ../返回上一级 解析test01.xml
-
# root随意起名
-
def readxml(self,path,firstname,secondname):
-
#传进文件路径
-
root = minidom.parse(path)
-
firstnode = root.getElementsByTagName(firstname)[0]
-
secondnode = firstnode.getElementsByTagName(secondname)[0].firstChild.data
-
return secondnode
-
# #打印
-
# print(root)
-
#调用实例化对象 print输出
-
print(ReadXml().readxml("../data/test01.xml","add","exepiton"))
导入pytest验证是否通过
-
#导入
-
import pytest
-
class TestClass():
-
# def setup(self):
-
# print("setup")
-
# @classmethod
-
# def setup_class(cls):
-
# print("setup_class")
-
# def test001(self):
-
# print("我是test001")
-
# def test002(self):
-
# print("我是test002")
-
# def teardown(self):
-
# print("teardown")
-
# @classmethod
-
# def teardown_class(cls):
-
# print("teardown_class")
-
def test001(self):
-
assert 3==4
-
def test002(self):
-
assert 2==2
-
#跳过语句
-
@pytest.mark.skip
-
def test003(self):
-
assert 1==1
-
if __name__ == '__main__':
-
#加入参数只执行一个 放入路径
-
# pytest.main(["-s","test_001.py"])
-
#生成测试报告
-
pytest.main(["-s","test_001.py","--html=./report.html"])
类名规则报错
加入参数 -s才能出运行结果
报错为 没有权限
解决方法 加入下载pytest
然后生成测试报告
跳过语句的演示
测试报告显示出
f报错 .为通过 s为跳过
参数必须加入命名才能运行出来
testxml代码
-
from calcdemo.calc import Calc
-
from readdata.readxml import ReadXml
-
import pytest
-
#实例化
-
c = Calc()
-
r = ReadXml()
-
qq=int(r.readxml("../data/test1.xml","cheng","cheng1"))
-
ww=int(r.readxml("../data/test1.xml","cheng","cheng2"))
-
ee=int(r.readxml("../data/test1.xml","cheng","execption"))
-
rr=int(r.readxml("../data/test1.xml","chu","chu1"))
-
tt=int(r.readxml("../data/test1.xml","chu","chu2"))
-
yy=int(r.readxml("../data/test1.xml","chu","execption"))
-
class TestXml():
-
def test001(self):
-
#拿到实际结果
-
result = c.cheng(qq,ww)
-
assert result ==ee
-
def test002(self):
-
result = c.chu(rr,tt)
-
assert result == yy
-
if __name__ == '__main__':
-
pytest.main(["--html=./report.html","testxml.py"])
readxml代码块
-
from xml.dom import minidom
-
class ReadXml():
-
def readxml(self,past,firstname,secondname):
-
#拿到根数据
-
root = minidom.parse(past)
-
firstname = root.getElementsByTagName(firstname)[0]
-
secondname = firstname.getElementsByTagName(secondname)[0].firstChild.data
-
return secondname
-
#验证
-
if __name__ == '__main__':
-
r = ReadXml()
-
#打印数据
-
print(r.readxml())
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfikikg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13