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
目录
相关文章
|
3月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
121 61
|
3月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
2月前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
328 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
3月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
118 61
|
3月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
188 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
2月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
3月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
172 3
|
3月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
98 1
|
3月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!

热门文章

最新文章