main_bu.py
2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os,time
import unittest
import HTMLTestRunner_cn
import commons.SendEmail as em
if __name__ == "__main__":
#递归查询测试用例
listaa = "E:\\EclipseWorkspace\\WorksapceDemo\\Request-demo2\\src\\testcase"
def Create_Testcase_suite():
'''可以拓展该方法,为读取相对路径,然后传入指定文件测试用例:
Create_Testcase_suite(最顶层用例文件Case_Sences,下一级具体接口文件,)
'''
testunit=unittest.TestSuite()
#discover会展示有多少test_*.py的文件,然后for依次添加这些文件夹下test_*.py里面的testcase
#这个方法会识别指定目录下所有test_*.py文件和test_*.py文件中所有class *(unittest.TestCase)以及其中的case
#每一个接口文件下面都得添加一个_init_.py不然无法识别该文件下的test_*.py
#_init_.py把所在目录当作一个package处理, from-import 语句导入子包时需要用到它。 如果没有用到, 他们可以是空文件
#如引入package.module下的所有模块from package.module import *
#submitOrder文件下不加_init_.py时,test_submitOrder文件无法被搜索
discover=unittest.defaultTestLoader.discover(listaa,pattern='test_*.py',top_level_dir=None)
#dicover会按照class为一个单位把每一个文件下的每一个class单位下的所有用例都加载出来
print(discover)
for test_suite in discover:
testunit.addTests(test_suite)
# for test_case in test_suite:
# testunit.addTests(test_case)
# print(testunit)
return testunit
print(Create_Testcase_suite())
#创建测试报告
now = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())
filename="E:\\EclipseWorkspace\\WorksapceDemo\\Request-demo2\\src\\report\\"+now+"_result.html"
fp=open(filename,'wb')
runner=HTMLTestRunner_cn.HTMLTestRunner(
stream=fp,
title=u'搜索功能测试报告',
description=u'用例执行情况:',
verbosity = 2)
runner.run(Create_Testcase_suite())
# #发送测试报告
# em.send_email(filename)
#
# fp.close()
#
# data = open(filename, 'r')
# print(data.read())