出自:小丸子~ http://www.cnblogs.com/alwayswyy/p/5102927.html
三.多个.py文件如何执行,如何生成一个测试报告,结构优化
测试报告优化思路:(1)所有的测试用例(包括共通是登录)放到用例文件夹下(2)执行用例的py文件单独列出 (3) 所有生成的报告放到Report文件夹下
文件结构如下:新建一个__init__.py文件(注意是双下划线,里面导入所有的用例),和所有的测试案例一起放到 test_case文件夹下
新建一个 test_all.py执行文件,代码如下:
import sys
sys.path.append("\test_case")
from test_case import *
import unittest
import HTMLTestRunner
import time
#注意使用套件时,在单个py文件中下的多个用例用 (类名("方法名")),
#导入多个py的类下,用(py名.类名)
suite=unittest.TestSuite()
suite.addTest(unittest.makeSuite(category.test_category))
suite.addTest(unittest.makeSuite(product.test_product))
now=time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time()))
filename='C:\\Users\\DELL\\Desktop\\Report\\'+now+"test_all.html"
fp=file(filename,'wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'产品管理和分类管理的自动化测试报告',description=u'测试用例结果')
runner.run(suite)
fp.close()
1.如果不创建__init__.py文件,用例执行的py文件将找不到引入的包,这里我们来普及一下包的导入过程中执行了什么操作:
(1)创建一个新的,空的module(类)对象
(2)将该对象加入到sys(系统)的module(类)中
(3)装载加入的module,此时会现在当前目录下寻找,后在python的path中寻找,而创建引用__init__.py 是为了标识它所在的文件夹(目录)是可引用的module!!!!!
2.把模块的路径通过sys.path.append(路径)添加到程序中,这里使用的是相对路径: \用例所在文件夹
3.当重新添加一个py文件一起执行时,需要两个地方改动:
(1)首先需要在 __init__.py文件下引入该py
(2)在用例执行的文件(test_all.py)下使用: suite.addTest(unittest.makeSuite(py名.类名)) 将此文件下的用例添加上去并执行!!!!!