python单元测试之unittest

简介: 现在python单元测试也要慢慢作正规了。 最终我可是要用django和mock的哟。

现在单元测试也要慢慢作正规了。

参考以下贴子作了一次python,

http://www.cnblogs.com/sunshine-blog/p/6735690.html

最终我可是要用django和mock的哟。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

043c28e84dcc92f618869484cfcf0e57c502101f043c28e84dcc92f618869484cfcf0e57c502101f

python unittest四大组成“元件”:

  • test fixture(测试脚手架)——测试代码的运行环境,指测试准备前和执行后要做的工作,包括setUp()和tearDown();
  • TestCase(测试案例)——所有测试用例的基类,它是软件测试中最基本的组成单元;
  • TestSuite(测试套件)——测试案例的集合;
  • test runner(执行测试)——测试用例的执行

  (note1:什么是测试用例? 答:测试用例是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown))

 

unittest测试代码流程:

  1. 写好TestCase
  2. 由TestLoader加载TestCase到TestSuite
  3. 然后由TextTestRunner来运行TestSuite,预见性结果保留在TextTestResult中(使用命令行或unittest.main()调用执行)



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import unittest
import myclass

class mytest(unittest.TestCase):
    #初始化工作
    def setUp(self):
        self.tclass = myclass.myclass() #实例化了被测试模块中的类

    #退出清理工作
    def tearDown(self):
        pass
    
    #具体的测试用例
    def test_sum(self):
        self.assertEqual(self.tclass.sum(1,2), 3)

    #跳过某个case
    @unittest.skip("I don't want to run this case.")
    def test_sub(self):
        self.assertEqual(self.tclass.sub(4, 2), 2)

    def test_multi(self):
        self.assertEqual(self.tclass.multi(2, 3), 5)

if __name__ == '__main__':

    

    #装载测试用例(该句话等价于tests = [mytest("test_sum"),mytest("test_sub"),mytest("test_multi")])
    tests = unittest.TestLoader().loadTestsFromTestCase(mytest)

    #使用测试套件并打包测试用例(addTests()等价于addTest())
    suite = unittest.TestSuite()
    suite.addTest(tests)

    #保存unittest的测试输出日志
    log_name = "log.txt"
    with open(log_name, 'w+') as f:
        result = unittest.TextTestRunner(stream=f, verbosity=2).run(suite)

    #若不保存测试输出结果,执行如下命令
    result = unittest.TextTestRunner(verbosity=2).run(suite)

    #生成测试报告
    print("testsRun:%s"%result.testsRun)
    print("failures:%s"%len(result.failures))
    print("errors:%s"%len(result.errors))
    print("skipped:%s"%len(result.skipped))
    '''
    unittest.main()
    '''
    

3425c10ac32499f96d2b54d1b64a811ad5fe6558
目录
相关文章
|
1天前
|
测试技术 持续交付 API
Python的UI自动化测试
【4月更文挑战第17天】Python UI自动化测试涉及Selenium(Web)、Appium(移动应用)和PyQt(桌面应用)等框架。基本步骤包括确定测试目标、选择合适框架、安装配置、编写测试脚本、运行调试以及集成到CI/CD流程。注意自动化测试不能完全取代人工测试,应根据需求平衡使用。
7 1
|
2天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
13 0
|
2天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
2天前
|
测试技术 持续交付 数据库
python集成测试
【4月更文挑战第16天】在Python集成测试中,确保模块间正确交互是关键。选择合适的测试框架如`unittest`或`pytest`,定义全面的测试用例,编写测试代码并设置类似生产环境的测试环境。执行测试后分析修复问题,将测试整合到持续集成流程,以尽早发现并解决问题。例如,使用`pytest`,我们可以创建测试用例验证不同模块间的功能是否按预期协同工作。
9 2
|
11天前
|
Web App开发 测试技术 网络安全
|
18天前
|
监控 物联网 Linux
python测试串口最大通信速率
【4月更文挑战第5天】
|
19天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
39 6
|
1月前
|
Web App开发 前端开发 JavaScript
Python Selenium是一个强大的自动化测试工具
Python Selenium是一个强大的自动化测试工具
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0
精心整理python测试小技巧:第十六节
精心整理python测试小技巧:第十六节