最近几天苦心钻研unittest,终于略有所得,所以想来跟大家分享一下。有关python和unittest的基础知识部分就不在一一细说,相信各位也不是小白了。如果需要我整理基础知识,欢迎留言,我会看情况整理出来。下面直接贴上我的demo模板代码,注释部分主要是思路,有疏漏的地方欢迎大佬们指正。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/12/7 11:03
# @Author :Yosef-夜雨声烦
# @Email :wurz529@foxmail.com
# @File: :model.py
# @Software :PyCharm Community Edition
"""
unittest模块总结:
关于这个模块,可没少让我吃苦头啊。以前自己学习这个模块的时候,就不是很懂,这两天我就一直在钻研这个东西,总算是略有收获。
下面的是我总结的模板,仅供参考。在学习PO模式之后,建议把下面模板分开几个py文件。 做下面demo发现的新问题:不能把断言放到try语句中并且是可以被except的异常类包含的,否则就不能通过断言来设置测试用例的结果。
然后突然想到raise语句,except语句执行完毕之后可以再抛出异常,这样就能被定义为fail
"""
import unittest
import HTMLTestRunner
import time class TestCases(unittest.TestCase): def setUp(self):
print("每一条case执行之前都会执行这个方法") def tearDown(self):
print("每一条case执行之后都会执行这个方法\n") def test_testcase1(self):
print("这是一条测试用例case1")
a = "hello"
try:
self.assertTrue(a.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e def test_testcase2(self):
print("这是一条测试用例case2")
b = ""
try:
self.assertTrue(b.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e def test_testcase3(self):
print("这是一条测试用例case3")
c = " "
try:
self.assertTrue(c.isalpha())
print("测试通过")
except Exception as e:
print("出错啦,错误结果是%s" % e)
print("failed")
raise e '''
if __name__ == "__main__":
unittest.main()
写上这段代码可以在命令行直接运行model.py,而且用例全部执行
''' """
加载测试用例,方法不仅这种,还有利用loader的方法,大佬们自行试下
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestCases))
or
suite.addTest(loader.loadTestsFromModule(model))
"""
suite = unittest.TestSuite()
# suite.addTest("test_testcase2") # 这里我写错了,要加上模块
suite.addTest(TestCases('test_testcase3')) """
指定测试报告的路径并且定义报告名称格式
"""
report_dir = "../Test report"
now = time.strftime("%Y-%m-%d %H-%M-%S")
reportname = report_dir + "/" + now + " Test report.html" """
运行用例并生成测试报告
"""
with open(reportname, "wb+") as file:
runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
description="Hello testers! This is the description of Model test"
"report")
runner.run(suite)

再次欢迎大家指正!

最新文章

  1. 不从SD卡启动树莓派2
  2. C2第十次解题报告
  3. 订餐系统之定时器Timer不定时
  4. linux下使用sqlplus使用上下键显示历史命令
  5. Ffmpeg简介
  6. TabLayoutViewPagerDemo【TabLayout+ViewPager可滑动】
  7. css布局:左边定宽、右边自适应
  8. [20170617]vim中调用sqlplus.txt
  9. YSQL获取自增ID的四种方法(转发)
  10. CAD中批量打印
  11. nginx信号量
  12. TFS 2017 培训 - 北京某银行科技部Java研发团队
  13. 一张图教会CSS3倒影
  14. [css]网站骨架布局作业
  15. Oracle Inventory Management Application Program Interface ( APIs) (Doc ID 729998.1)
  16. 一个TCP报文段的数据部分最多为多少个字节,为什么
  17. AA MME设备内部错误
  18. fir.im 测试包下载工具--FIRReader 的图文介绍
  19. 工具 | Axure基础操作 No.4
  20. bzoj 2660: [Beijing wc2012]最多的方案

热门文章

  1. 8、技术分析fastJson使用
  2. python基础之-数据类型
  3. Python使用signal模块实现定时执行
  4. Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
  5. Photo3
  6. javascript总结24:Array常用的队列操作和排序方法
  7. gitlab 升级到 5.3 之后不能pull
  8. smarty中用truncate来截取中英文字符串及避免中文乱码问题
  9. JavaScript语言精粹 笔记05 正则表达式
  10. Alpha冲刺(八)