创建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)

最新文章

  1. 【代码笔记】iOS-竖状图
  2. NET异常 在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次。
  3. 帅呆了!ASP.NET Core每秒能处理115万个请求
  4. JSP Servlet性能分析
  5. MySQL入门书籍和方法分享
  6. Hexo+github 搭建个人博客(一)
  7. C++转换unicode utf-8 gb2312编码
  8. HDU-2975 Billboard
  9. bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配
  10. 如果使用的是orm,是否还需要关系索引
  11. -_-#【Canvas】圆弧运动
  12. Linux彩色输出
  13. Cracking the code interview
  14. jsp去除空行的web.xml配置
  15. RVDS4.0 + JLINK 调试 cortex-A9
  16. Css Secret 案例Demo全套
  17. vue项目实践-前后端分离关于权限的思路
  18. splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。
  19. Linux 防火墙iptables开放端口
  20. python笔记之time模块

热门文章

  1. ABP zero出现Default language is not defined!的错误的解决方法
  2. java并发编程:线程安全管理类--原子操作类--AtomicBoolean
  3. 卸载oracle11g步骤图解
  4. BZOJ2314 士兵的放置
  5. scrollTop和scrollLeft属性
  6. 集成学习之Boosting —— Gradient Boosting原理
  7. json to xml
  8. redux-thunk中间件源码
  9. 首次运行tensorflow-gpu 1.0 报错 failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
  10. Map集合统计字母次数