自动化工具 python+unittest 批量运行测试用例找不到测试数据文件

浪里漂 · 2019年01月22日 · 最后由 stone9159 回复于 2020年10月29日 · 20 次阅读

目录结构:
Interface
/common
/datas
/Log
/report
/TestCase
RunTest.py
我的数据源是 yaml 格式,获取 yaml 格式的代码如下:

# -*- coding: UTF-8 -*-
import yaml
import os


class ReadYaml(object):
    def __init__(self):
        yaml_path = "../datas/TestData.yaml"
        with open(yaml_path, "r") as f:
            self.content = yaml.load(f)

RunTest.py 代码

# -*- coding:UTF-8 -*-
import os
import unittest
import time
from common import HTMLTestRunner
import sys
reload(sys)
sys.setdefaultencoding("utf-8")


def run_allcase():
    try:
        test_dir = os.path.join(os.getcwd(), "TestCase")
        rep_dir = os.path.join(os.getcwd(), "report/")
        new_time = time.strftime("Report%Y-%m-%d.html", time.localtime())
        rep_name = rep_dir + new_time
        file_open = open(rep_name, "wb")
        discover_test = unittest.defaultTestLoader.discover(
            test_dir, pattern="test_*.py"
        )
        runner = HTMLTestRunner.HTMLTestRunner(
            stream=file_open, title="Test report", description="用例执行情况:"
        )
        runner.run(discover_test)
        file_open.close()
    except Exception as e:
        print "running tesecase fail:", e


if __name__ == "__main__":
    run_allcase()

运行单个测试文件是成功的(我把路径打印出来是:/Users/imac/Desktop/Interface/datas/TestData.yaml),加入批量执行用例的时候报错提示找不到 yaml 文件,从报错的信息看少了一层 Interface 文件 (我把路径写成绝对路径批量执行是没有问题),包括我把相对路径转换成绝对路径都还是报错。。请问下各位该如何解决呢
IOError: [Errno 2] No such file or directory: '/Users/imac/Desktop/datas/TestData.yaml'

共收到 3 条回复 时间 点赞

楼主这个问题解决了吗?我也遇到了,求解

dongyn 回复

已经解决了

楼主你是怎么解决的呢?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册