欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - 软件测试学习资源—Python unittest单元测试框架入门

软件测试学习资源—Python unittest单元测试框架入门

分类:推荐文章 · 发布:2025-12-20 · 浏览:1

最近看到不少的朋友咨询软件测试—Python unittest单元测试框架入门的知识,下面带大家来了解一下!

fun.py

def add(a,b):

return a+b

def minus(a,b):

return a-b

def multi(a,b):

return a*b

def divide(a,b):

return a/b

对于执行顺序,默认按照A-Z、a-z的方法执行。如果想按自己编写的case的先后关系执行,需要用到testSuite。如果想跳过某个case,需要用到skip装饰器。

Test_fun.py

import unittest

from fun import *

class TestFunc(unittest.TestCase):

# 在所有case执行之前初始一次测试环境

@classmethod

def setUpClass(cls):

                print("this setupclass() method only called once")

# 在所有case执行结束后再清理环境

@classmethod

        def tearDownClass(cls):

print("this teardownclass() method only called once too")

# 测试方法均已test开头,否则是不被unittest识别的

def test_add(self):

self.assertEqual(6,add(4,2))

def test_minus(self):

self.assertEqual(7,minus(9,2))

# 如果想跳过某个case:skip装饰器

@unittest.skip("i don't want to run this case. ")

def test_multi(self):

self.assertEqual(8,multi(2,4))

def test_divide(self):

self.assertEqual(2,divide(4,2))

Test_su1.py

#控制台输出测试报告

import unittest

from Test_fun import TestFunc

if __name__ == "__main__":

suite = unittest.TestSuite()

        # 定义list,按照list里的顺序执行测试用例

tests=[TestFunc("test_add"),TestFunc("test_minus"),TestFunc("test_multi"),TestFunc("test_divide")]

suite.addTests(tests)

#在main()中加verbosity参数,可以控制报告的详细程度

#verbosity参数设为0,则不输出每一个用例的执行结果;2-输出详细的执行结果

runner = unittest.TextTestRunner(verbosity=2)

runner.run(suite)

执行结果:

软1图1.png

我们可以借助与第三方提供的库来输出更加形象的html报告

先下载HTMLTestRunner.py,然后放在Python的Lib目录下;

HTMLTestRunner()方法有三个参数:

stream:测试报告写入文件的存储区域

title:测试报告的主题

description:测试报告的描述

Test_su2.py

import unittest

from test_fun import TestFunc

from HTMLTestRunner import HTMLTestRunner

if __name__ == "__main__":

suite = unittest.TestSuite()

# 定义list,按照list里的顺序执行测试用例

tests=[TestFunc("test_add"),TestFunc("test_minus"),TestFunc("test_multi"),TestFunc("test_divide")]

suite.addTests(tests)

with open('HtmlReport.html','wb') as f:

runner = HTMLTestRunner(stream=f,title=' test report',description=' function',verbosity=2)

       runner.run(suite)

执行结果:

2.png


上一篇:美国 SEC RIA 牌照怎么申请基本条件和费用
下一篇:海洋世界系统定制开发

相关文章

源码分类

热门源码

最新资讯

联系我们