suite 这个表示测试集,不要放在class内,否则会提示"没有这样的测试方法在类里面 ",我觉得它唯一的好处就是调试的时候可以单独调试某个class而已,我一般不用它,调试时可以注释不需要的class啊 。不同接口用不同的class也是一种用法,不过那样用我下面说的import不同py的方法更好,因为所有用例写在一起的话文件太大了

class PhpTest(unittest.TestCase):
def setUp(self):
#预置环境
print '--------------PhpTestSetUp--------------\n'
def tearDown(self):
#清理环境
print '--------------PhpTestClear--------------\n' def test_php(self):
print 'test_php' def test_phplog(self):
print 'test_phplog' def suite(): #suite 这个表示测试集,不要放在class内
suite = unittest.TestSuite()
suite.addTest(NginxTest("suite_1"))
suite.addTest(NginxTest("suite_2"))
suite.addTest(PhpTest("test_php"))
suite.addTest(PhpTest("test_phplog"))
unittest.TextTestRunner().run(suite) if __name__ == '__main__':
# unittest.main(exit = False,verbosity=2)#它是全局方法,把它屏蔽后,不在suite的用例就不会跑,exit = False表示中间有用例失败也继续执行;还有比较常用的verbosity=2,表示显示def名字
suite()#执行suite

如果接口相当多,为了方便维护,建议每个case用独立的py来写,然后用一个“总入口”去import所有py,然后再调用就行了,这是suite就派上用场了

  举个例子,luatestcase.py如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*- import os
import time
import datetime
import unittest class LuaTest(unittest.TestCase):
def runTest(self):
print 'anything'
def setUp(self):
#预置环境
print '--------------LuaTestsetUp--------------\n'
def tearDown(self):
#清理环境
print '--------------LuaTestclear--------------\n' def test_lua(self):
print 'test_lua' def test_lualog(self):
print 'test_lualog' def casesuite():
suite = unittest.TestSuite()
suite.addTest(LuaTest("test_lua"))
suite.addTest(LuaTest("test_lualog"))
unittest.TextTestRunner().run(suite)

  调用luatestcase.py的“总入口py”就得这样写:

#!/usr/bin/env python
# -*- coding: utf-8 -*- import os,sys
import time
import datetime
import unittest import luatestcase if __name__ == '__main__':
luatestcase.casesuite()

  如果luatestcase.py没有用casesuite“收集”它的用例的话,总入口调不了里面的用例的

最新文章

  1. 学习笔记——关于HTML(含HTML5)的块级元素和行级(内联)元素总结
  2. [原创]如何设计Lighthoused定位接收电路
  3. 8.3 H5学习笔记
  4. window 安装 sass compass 记录
  5. smartmontools的安装使用和实现对磁盘的Nagios监控
  6. 设计模式之单例模式(Singleton Pattern)
  7. c数组与指针
  8. GitHub中"watch" "star" "fork"三个按钮干什么用的?
  9. PL/SQL 触发器简介
  10. win32内核程序中进程的pid,handle,eprocess之间相互转换的方法
  11. ArcGIS JavaScript API本地部署离线开发环境[转]
  12. Powershell 远程连接ARM Windows Server VM 并关闭 Firewall
  13. HTTP之URL分解
  14. 饮冰三年-人工智能-Python-30 python开发中常见的错误
  15. android 事件绑定
  16. Vue.js 子组件的异步加载及其生命周期控制
  17. PHP操作MongoDB 数据库
  18. 使用swig工具为go语言与c++进行交互
  19. linux系统日志自动切割工具----logrotate
  20. redis源码分析

热门文章

  1. slave库写redo、binlog不实时丢数据的场景
  2. Elasticsearch学习之深入搜索六 --- 平衡搜索结果的精准率和召回率
  3. 成员函数指针与高效C++委托 (delegate)
  4. 23种设计模式之享元模式(FlyWeight)
  5. Olivia Palermo & Johannes Huebl 模范情侣
  6. Java、JavaWeb中单元测试用到的测试方法
  7. POJ-1414 Life Line (暴力搜索)
  8. POJ3150 Candies【差分约束】
  9. 专访知乎张伟:RFC技术评审机制如何助力知乎实现工程文化落地
  10. POJ - 1101 The Game dfs