python单元测试之unittest

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

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

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

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

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

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()
    '''

时间: 2025-01-24 01:08:44

python单元测试之unittest的相关文章

python自动化测试之连接几组测试包实例_python

本文实例讲述了python自动化测试之连接几组测试包的方法,分享给大家供大家参考.具体方法如下: 具体代码如下: class RomanNumeralConverter(object): def __init__(self): self.digit_map = {"M":1000, "D":500, "C":100, "L":50, "X":10, "V":5, "I"

python自动化测试之从命令行运行测试用例with verbosity_python

本文实例讲述了python自动化测试之从命令行运行测试用例with verbosity,分享给大家供大家参考.具体如下: 实例文件recipe3.py如下: class RomanNumeralConverter(object): def __init__(self, roman_numeral): self.roman_numeral = roman_numeral self.digit_map = {"M":1000, "D":500, "C"

python自动化测试之setUp与tearDown实例_python

本文实例讲述了python自动化测试之setUp与tearDown的用法,分享给大家供大家参考.具体如下: 实例代码如下: class RomanNumeralConverter(object): def __init__(self): self.digit_map = {"M":1000, "D":500, "C":100, "L":50, "X":10, "V":5, "I

单元测试之白盒测试方法——代码审查

我所在公司内目前还没有单元测试,前两天测试某系统的FTP上传功能时,发现其软件的流程设计有问题,进而觉得单元测试对系统还是很重要的,今天又在网上查看了很多关于单元测试的文章,发现现在做单元测试的公司还真的不是很多呀.原因之一单元测试的bug发现率太低使得公司忽视了这一块:再就是公司内没有一个好的单元测试流程.鉴于上面提到的两个原因及公司现在的环境(流程的可行性),我想出了以下的白盒测试流程.简称单元测试之白盒测试方法(代码审查). 首先先说一下测试中需要出的文档. 在单元测试前可以进行代码规范性

艾伟_转载:单元测试之道(使用NUnit)

首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试--终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而又忐忑的心情点击界面上的按钮,顿时你刚刚的轻松感烟消云散:系统无法正常工作,你想读的数据显示不出来,你想存的东西也送不到数据库--于是,你再次回到IDE里,设断点.调试.一层一层跟踪,当你精疲力尽终于将数据送到数据库里,你又发现了其它问题,于是你继续设断点.调试.编译.调试-- 2.你狂躁地敲击着键盘和鼠标,咒骂着不断出现

Python单元测试框架unittest使用方法讲解_python

概述 1.测试脚手架(test fixture) 测试准备前要做的工作和测试执行完后要做的工作.包括setUp()和tearDown(). 2.测试案例(test case) 最小的测试单元. 3.测试套件(test suite) 测试案例的集合. 4.测试运行器(test runner) 测试执行的组件. 命令行接口 可以用命令行运行测试模块,测试类以及测试方法. 复制代码 代码如下: python -m unittest test_module1 test_module2 python -m

selenium-webdriver(python) (十六) unittest 框架简介

学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. 借助IED 录制脚本 将脚本导出,保存为baidu.py ,通过python IDLE编辑器打开.如下: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys fro

selenium-webdriver(python) (十六) --unittest 框架

学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selenium IDE   借助IED 录制脚本   将脚本导出,保存为baidu.py ,通过python IDLE编辑器打开.如下: from selenium import webdriver from selenium.webdriver.common.by import By from selen

Python单元测试框架unittest简明使用实例_python

测试步骤1. 导入unittest模块 import unittest 2. 编写测试的类继承unittest.TestCase class Tester(unittest.TestCase) 3. 编写测试的方法必须以test开头 def test_add(self) def test_sub(self) 4.使用TestCase class提供的方法测试功能点 5.调用unittest.main()方法运行所有以test开头的方法 复制代码 代码如下: if __name__ == '__m