Python使用Unittest读取xml文件(单元测试)

我们一共有三个文件

  1. 123.xml
  2. testxml.py
  3. readxml.py
  4. demotest.py

读取xml文件代码(死格式)

from xml.dom import minidom
class Readxml():
    def read_xml(self,filename,onename,twoname):
        root =minidom.parse(filename)
        firstnode =root.getElementsByTagName(onename)[0]
        secondnode=firstnode.getElementsByTagName(twoname)[0].firstChild.data
        return secondnode
readxml = Readxml()   # 实例化对象

Demo

123.xml
xml文件demo

<echo>
    <cheng>
        <num1>2</num1>
        <num2>4</num2>
        <num3>8</num3>
    </cheng>
    <chu>
        <num1>2</num1>
        <num2>4</num2>
        <num3>8</num3>
    </chu>
</echo>

readxml.py
py文件,这个文件用来读取xml文件,获取xml文件的数据。

from xml.dom import minidom
class Readxml():
    def read_xml(self,filename,onename,twoname):
        root =minidom.parse(filename)
        firstnode =root.getElementsByTagName(onename)[0]	# 获取到cheng标签
        secondnode=firstnode.getElementsByTagName(twoname)[0].firstChild.data
        return secondnode

if __name__ == '__main__':
    readxml = Readxml()
    print(readxml.read_xml("123.xml","cheng","num1"))		# 获取xml文件数据
    print(readxml.read_xml("123.xml", "cheng", "num2"))
    print(readxml.read_xml("123.xml", "cheng", "num3"))

demotest.py
这个文件就是开发写的函数,我这个就只是一个简单demo。

class Testsdemo():
    def cf(self,a,b):
        c = a * b
        return c

    def chu(self,a,b):
        c = a % b
        return c

testxml.py
这个文件使用unittest模块,测试数据预期结果和实际结果。

import unittest									# 导入unittest模块
from Unittest.demotest import Testsdemo			# 导入开发写的函数,要测的函数
from Unittest.xmldemo.readxml import Readxml	# 导入读取xml文件
readxml = Readxml()			# 实例化对象
testdemo = Testsdemo()		# 实例化对象


class TestXml(unittest.TestCase):    # 继承unittest类
    def test001(self):				# 测试用例001
        num1 = int(readxml.read_xml("xmldemo/123.xml","cheng","num1")) # 获取xml文件中的数据
        num2 = int(readxml.read_xml("xmldemo/123.xml","cheng","num2"))
        num3 = int(readxml.read_xml("xmldemo/123.xml","cheng","num3"))
        a = testdemo.cf(num1,num2)		# 开发写的函数,进行传参并赋值
        self.assertEqual(a,num3)		# unittest模块比较预期结果和实际结果
if __name__ == '__main__':
    unittest.main()						# 启动测试用例

文件路径注意修改

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值