`

记录测试用例中使用绝对路径遇到的问题

阅读更多
我本人比较喜欢相对路径,因为很多时候不同系统下使用绝对路径复用性太差。
问题描述:执行某个项目的所有测试用例的时候,遇到读取某个目录下面的文件,使用相对路径有时候达不到效果
比如如下结构:
test_project
    test_case
        pub
              init.py
              public.py
         test_login.py
         test_send_email.py
     report
         xxx.html
     test_data
        login.xml
      all_test.py
我在test_login.py里面调用login.xml的时候使用相对路径没有问题(..\test_data\login.xml),
但是我在all_test.py里面去执行test_case下面的所有的测试用例就会报错,找不到login.xml文件,这是因为,在test_login.py里面使用的相对路径是相对与这个脚本的,在all_test.py里面在去调用这个脚本的时候相对路径下是找不到login.xml的。
下面是all_test.py里面的代码:
#创建测试套件
testunit=unittest.TestSuite()
#定义测试文件查找的目录
test_dir='test_case'
    #定义 discover 方法的参数
testlist=unittest.defaultTestLoader.discover(test_dir,
                                                pattern ='test*.py',
                                                top_level_dir=None)
if __name__ == '__main__':
    test_report = 'report\\'
    now = time.strftime("%Y_%m_%d_%H_%M_%S")  #获取当前时间
    #定义个报告存放路径
    filename = test_report+now+'result.html'
    print filename
    fp = file(filename, 'wb')
    #定义测试报告
    runner =HTMLTestRunner.HTMLTestRunner(
    stream=fp,
    title=u'126邮箱试报告',
    description=u'用例执行情况:')
    #运行测试用例
    runner.run(testlist)
    #关闭报告文件
    fp.close()
 
 
解决方案:在读取该文件的脚本里使用绝对路径
代码如下:
from os import sys,path
xml_local = path.join(path.dirname(path.dirname(path.abspath(__file__))), "test_data")
dom = xml.dom.minidom.parse(path.join(xml_local, 'login.xml'))
如有疑问,欢迎加入QQ qun :113097051
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics