创建class继承unittest,每一个测试用例是以test开头的函数,先执行setup,然后用例按照字母的顺序执行,然后执行teardown

import unittest

class demo(unittest.TestCase):
    def setup(self):
        print "this
is the setup"

def testb(self):
        print "this
is test b"
    def testa(self):
        print "this
is test a"

def teardown(self):
        print "this
is the down"

if __name__ == '__main__':
    unittest.main()

运行unittest.main即运行所有test开头的用例

测试集

控制测试执行顺序,使用测试集,在测试集中添加测试用例的,用例的先后顺序保证测试执行的顺序

testsuite = unittest.TestSuite()

testsuite.addTest(demotest("test_toregister"))

testsuite.addTest(demotest("test_tologin"))

还可以通过列表添加case

tests=['test_toregister','test_tologin']

testsuite=unittest.TestSuite(map(demotest,tests))

TestLoader是用来加载TestCase到TestSuite中的,其中有几个loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例。

testloader中加载测试的方法:

loadTestsFromTestCase(testcaseclass)#测试用例的类名
loadTestsFromModule(module)#存放用例的模块名
loadTestsFromName(name,module=None)
#这里的name是使用xx.xx.xx等类型的,如有个一demotest的模块,其中有一个demotestclass的类,下面有多个case,test_one,test_two,使用demotest.demotestclass的话,会加载下面
的多个case进行测试,使用demotest.demotestclass.test_one的话只加载test_one用例进行测试
loadTestsFromNames(names,module=None)#names为一系列
discover( start_dir, pattern='test*.py',top_level_dir=None
#通过给定的start_dir查找符合pattern的所有测试模块

TextTestRunner是来执行测试用例的,其中的run(test)会执行TestSuite/TestCase中的run(result)方法。

测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

suite = unittest.TestLoader().loadTestsFromTestCase(demotest)
unittest.TextTestRunner(verbosity=2).run(suite) 如果测试用例不在同一个py文件中,可是使用unittest的makesuit(testcaseclass)来加载
suit.addTests(unittest.makeSuite(demotestcase))

控制用例是否执行,使用框架中提供的装饰器,如

Unittest.skip(“xxx”),如果用例使用了该装饰器,那么该用例将不会被执行而跳过

unittest.skipIf(),满足括号中条件的话就跳过不执行

unittest.skipUnless(),满足括号中的条件不跳过,其他情况下跳过

unittest.expectedFailure(),标记该用例为预期失败的用例,如果在运行过程中失败了,则用例不算失败

Html测试报告—HTMLTestRunner

# 确定生成报告的路径

    tm = time.strftime('%d-%H-%M-%S', time.localtime(time.time()))

    filePath = cmd.log_path+"/"+tm+"-pyResult.html"

    fp = file(filePath, 'wb')

# 生成报告的Title,描述

    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='测试报告', description='测试报告')

runner.run(testsuite)

Python之单元测试框架unittest的更多相关文章

  1. Appium+python的单元测试框架unittest(1)(转)

    unittest为python语言自带的单元测试框架,python把unittest封装为一个标准模块封装在python开发包中.unittest中常用的类有:unittest.TestCase.un ...

  2. Appium+python的单元测试框架unittest(4)——断言(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10051576.html) 在我们编写的测试用例中,测试步骤和预期结果是必不可少的.当我们运行测试用例时,得到一个运行 ...

  3. python之单元测试框架—unittest

    一. 什么是单元测试?单元测试的对象是什么? 1: 什么是单元测试? 按照定义,单元测试就是对单个模块或者单个类或者单个函数进行测试,一般是开发做的,按照阶段分,一般就是单元测试.集成测试.系统测试. ...

  4. python之单元测试框架—unittest(补充)

    一. unittest最核心的四个概念 unittest中最核心的四个概念是:test case,test suite,test runner,test fixture TestCase:一个test ...

  5. Appium+python的单元测试框架unittest(3)——discover(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10047906.html) TestSuite套件可以添加很多个用例后运行,但是每个用例都需要调用addTest()函 ...

  6. Appium+python的单元测试框架unittest(2)——fixtures(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10046333.html) unittest提供的Fixtures用以在测试执行前和执行后进行必要的准备和清理工作,可 ...

  7. Python单元测试框架unittest之单用例管理(一)

    一.概述 本文介绍python的单元测试框架unittest,unittest原名为PyUnit,是由java的JUnit衍生而来,这是Python自带的标准模块unittest.unittest是基 ...

  8. 单元测试框架unittest

    单元测试:单元测试,是指对软件中的最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义如:c语言中单元指一个函数,java里单元指一个类,图形化的软件中可以 ...

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

    这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下   概 ...

随机推荐

  1. python运行错误------Non-UTF-8 code

    1.安装-----见:https://www.cnblogs.com/weven/p/7252917.html 本文转载于:http://blog.csdn.net/youyuyixiu/articl ...

  2. createjs记录坑

    1.使用preloadjs加载资源: manifest = [ {src: "block.png", id: "ground"}, {src: "re ...

  3. 《BAT前端进阶[师徒班]》学习总结

    这是一个培训课 是的,这是一个面向中级前端的培训班,但明显跟传统的填鸭式培训班不太一样.这边的老师都是大牛这是毫无疑问的,而且都是一线开发人员.而且课程一开始就说明了面向了是有1-3年有工作经验的前端 ...

  4. java读取和写入浏览器Cookies

    首先我们认识下什么是cookies: cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookie web应用一般 ...

  5. 条件查询、SQL、JPQL、HQL比较

    一.什么是JPQL 在 Java EE 中,JPQL( Java 持久性查询语言)是专门为Java 应用程序访问和导航实体实例设计的.JPQL是EJB2使用的查询语言EJB QL的扩展,它继承了EJB ...

  6. 今天廷鹏师弟来的java建议

    如下一段获取数据代码的问题: public Serializable getById(Serializable id) throws BaseBusinessException {  if (id = ...

  7. jQuery - 左右拖动分隔条

    1.实现效果: 2.代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...

  8. OMAP4之DSP核(Tesla)软件开发学习(二)Linux内核驱动支持OMAP4 DSP核

    注:必须是Linux/arm 3.0以上内核才支持RPMSG,在此使用的是.config - Linux/arm 3.0.31 Kernel Configuration.(soure code fro ...

  9. c# 通过文件夹共享复制文件到服务器

    public static string[] GetFileNames(string directoryPath, string searchName) { return Directory.GetF ...

  10. Mac 终端下Homebrew的几个常用命令(新手笔记)

    最近在研究用appium来做IOS的自动化,所以开始接触Mac系统.记录一下在Mac的终端下Homebrew的几个常用命令 安装(需要 Ruby,不过一般自带都有):ruby -e "$(c ...