zoukankan      html  css  js  c++  java
  • Python单元测试之unittest读取xml文件

    详细步骤:

    1. 获取开发的代码

    2.导入数据

    3.读取数据

    4.编写测试用例代码(导入开发实例,需要的数据)

    5.创建测试套件,根据HTMLTestRunner生成报告
    1.开发代码案例(cczs.py)
    class Cczs(object):
        def __init__(self, a, b):
            self.a = a
            self.b = b
    
        def multiplication(self):
            '''乘法'''
            m = self.a * self.b
            return m
    
        def division(self):
            '''除法'''
            d = self.a / self.b
            return d
    2.导入数据testxml.xml
    <node>
        <multiplication>
            <multiplication1>1</multiplication1>
            <multiplication2>2</multiplication2>
            <multiplication3>2</multiplication3>
        </multiplication>
        <division>
            <division1>6</division1>
            <division2>2</division2>
            <division3>1</division3>
        </division>
    </node>
    3.读取数据(readxml.py)
    from xml.dom import minidom
    
    
    class Readxml():
        def read_xml_multiplication(self, filename, onename, twoname):
            root = minidom.parse(filename)
            firstnode = root.getElementsByTagName(onename)[0]
            secondnode = firstnode.getElementsByTagName(twoname)[0].firstChild.data
            return secondnode
    
        def read_xml_division(self, filename, onename, twoname):
            root = minidom.parse(filename)
            firstnode = root.getElementsByTagName(onename)[-1]
            secondnode = firstnode.getElementsByTagName(twoname)[0].firstChild.data
            return secondnode
    
    # readxml = Readxml()
    # readxml.read_xml_multiplication('D:\pythonstudy\unittest\datedemo\testxml.xml','multiplication','multiplication1')
    
    # readxml = Readxml()
    # readxml.read_xml_division('D:\pythonstudy\unittest\datedemo\testxml.xml','division','division1')
    4.编写测试用例代码(导入开发实例,需要的数据)testxml.py
    import unittest
    from demo.cczs import Cczs
    from readdemo.readxml import Readxml
    
    readxml = Readxml()
    '''实例化读xml'''
    
    '''获取到的乘法数据'''
    num_m1 = int(readxml.read_xml_multiplication('D:\pythonstudy\unittest\datedemo\testxml.xml', 'multiplication', 'multiplication1'))
    num_m2 = int(readxml.read_xml_multiplication('D:\pythonstudy\unittest\datedemo\testxml.xml', 'multiplication', 'multiplication2'))
    num_m3 = int(readxml.read_xml_multiplication('D:\pythonstudy\unittest\datedemo\testxml.xml', 'multiplication', 'multiplication3'))
    
    '''获取到的除法数据'''
    num_d1 = int(readxml.read_xml_division('D:\pythonstudy\unittest\datedemo\testxml.xml','division','division1'))
    num_d2 = int(readxml.read_xml_division('D:\pythonstudy\unittest\datedemo\testxml.xml','division','division2'))
    num_d3 = int(readxml.read_xml_division('D:\pythonstudy\unittest\datedemo\testxml.xml','division','division3'))
    
    cc = Cczs(num_m1, num_m2).multiplication()  # 实例化要测开发类乘法
    dd = Cczs(num_d1, num_d2).division()  # 实例化要测开发类除法
    
    
    class Testxml(unittest.TestCase):
        '''测试xml类'''
    
        def test_multiplication(self):
            '''测试乘法'''
            self.assertEqual(cc, num_m3)
    
        def test_division(self):
            '''测试除法'''
            self.assertEqual(dd, num_d3)
    5..创建测试套件,根据HTMLTestRunner生成报告
    from datedemo.HTMLTestRunner import HTMLTestRunner
    
    
    class TXmlHtml():
        def txmlhtml(self):
            suite = unittest.TestSuite()  # 创建测试套件
            case_list = ['test_multiplication', 'test_division']
            for case in case_list:
                suite.addTest(Testxml(case))
            with open("../reportxml.html", "wb") as f:
                HTMLTestRunner(
                    stream=f,
                    title="单元测试xml",
                    description="乘法除法测试",
                    verbosity=2
                ).run(suite)
    if __name__ == '__main__':
        t =TXmlHtml()
        t.txmlhtml()

    落后就要吃土,努力吧,骚年!!!
  • 相关阅读:
    OC中extern,static,const的用法
    pod install 报错
    设置Image渲染模式使用TintColor
    VLC 用到的那些 YUV 格式
    base64编码原理
    scp 拷贝文件时报错
    linux 恢复误删文件
    hadoop 集群安装(Cloudera CDH方式)
    记录自己需要读的几本书
    求解最长回文子串
  • 原文地址:https://www.cnblogs.com/u-damowang1/p/14847489.html
Copyright © 2011-2022 走看看