# -*-coding:utf-8-*-
import os
import time
import unittest
#HTMLTestRunner.py文件在src.dep目录下
from src.dep import HTMLTestRunner
from src.common import web_client
testunit = unittest.TestSuite()#testsuite()测试套件,可以看做是一个容器,可以通过addtests方法把要执行的用例添加到该容器里
test_dir = '../testcases_admin'#定义个文件testcase存在的目录的变量
#defaultTestLoader:测试用例加载器,其中包括多个加载测试用例的方法,返回一个测试套件
#discover(test_dir,pattern='*.py',top_level_dir=None):找到指定目录test_dir下所有测试模块,递归查到子目录下所有以.py结尾的测试用例,只有匹配到的文件才能被加载进来,如果启动的不是顶层目录,那么顶层目录必须要单独指定,如果没有顶层目录,默认为None
tests = unittest.defaultTestLoader.discover(test_dir, pattern='*.py',
top_level_dir=None)
test_report = '../report/'
now = time.strftime("%Y_%m_%d_%H_%M_%S",time.localtime()) # 获取当前时间,第一个参数设置时间格式,第二个参数是得到struct_time形式的当前时间
#定义个报告存放路径
filename = test_report + now + '_result.html'#测试报告的存放路径及文件名,文件名中加了当前时间以便每次生成不同的测试报告
fp = open(filename, 'wb')#创建测试报告的html文件,此时还是一个空文件,以只写二进制的方式打开文件
#定义测试报告,stream定义报告所写入的文件,title为报告的标题,deion为报告的说明与描述
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'智能工位系统测试报告', deion=u'用例执行情况:')
#运行测试用例,运行测试容器中的用例,并将结果写入到报告中
runner.run(tests)
fp.close()#关闭文件流,将html内容写进测试报告文件
report = web_client.WebClient('file:' + os.path.abspath(filename))#找到这个文件,打开这个文件
report.run_chrome()
#