踩坑 - 使用Buildout Config文件做数据配置
2017-12-11 本文已影响30人
yytester
问题现象
我的公共类放在case_common
目录,测试用例放在test_case
目录.
如果执行case_common
下的run_test.py
,可以正常执行.
如果执行test_case
下的run_testes.py
, 则直接报'EEEEEEEEEE'.
case_common/run_test.py
和 test_case/run_testes.py
两边的代码都没问题,只在import
的地方做了适当修改,其他代码内容都一样.
case_common/run_test.py
代码是
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import time
from HTMLTestRunner import HTMLTestRunner
#指定测试用例存放的目录
test_dir = '../test_case'
# test_dir = '../test_case'
#指定执行测试目录里,名字是test_开头的py文件
discover = unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py')
if __name__ == '__main__':
now = time.strftime("%Y-%m-%d %H:%M:%S")
filename = '../../report/' + now + '_TestResult.html'
fp = open(filename,'wb')
runner = HTMLTestRunner(stream=fp,title=u'e钱庄测试报告',description=u'用例执行情况:')
runner.run(discover)
fp.close()
test_case/run_testes.py
代码是:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import unittest
import time
from case_common.HTMLTestRunner import HTMLTestRunner
#指定测试用例存放的目录
test_dir = '../test_case'
#指定执行测试目录里,名字是test_开头的py文件
discover = unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py')
if __name__ == '__main__':
now = time.strftime("%Y-%m-%d %H:%M:%S")
filename = '../../report/' + now + '_TestResult.html'
fp = open(filename,'wb')
runner = HTMLTestRunner(stream=fp,title=u'e钱庄测试报告',description=u'用例执行情况:')
runner.run(discover)
fp.close()
原因
使用Buildout Config文件做数据配置,则必须和主执行文件test_case/run_testes.py
或test_case/run_testes.py
在同一个文件夹里
改进
-
以执行主文件为基准,正确设置Buildout Config文件的相对目录.如
image.pngrun_scripts.py
是主文件:
则设置:setUpConf = ConfigParser.ConfigParser() # 取"element"文件的配置数据 config_dir = "../config/" setUpConf.read(config_dir + "element")
-
换YAML做配置文件,代替Buildout Config.