main_bu.py 2.36 KB
#!/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-demo-dili\\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())