# 上传自定义测试用例指引

测试用例上传到平台后,平台会将 zip 包进行解压,然后利用 Python 内置的 inspect 模块分析出test打头的测试函数名称。

在 inspect 过程中,会把每个 Python 文件执行一遍,可能会出现因为 case 目录结构不合理导致的分析失败。

# 推荐目录结构

推荐两种用例目录组织结构:

___my_case
   |___test_a.py  // from util.base import xxxx
   |___test_b.py  // from util.base import xxxx
   |___util
       |___ __init__.py
       |___base.py

选择test_a.py、test_b.py和 util 目录一起打包压缩成case.zip

___my_case
   |___test_pack
        |___ __init__.py   // 注意这里,加上__init__.py使整个test_pack成为一个包
        |___test_a.py      // from test_pack.util.base import xxxx
        |___test_b.py      // from test_pack.util.base import xxxx
        |___util
           |___ __init__.py
           |___base.py

选择test_pack目录压缩成case.zip

注意:不要直接选中"my_case"这层目录进行压缩

# 本地调试

出现问题时可以 下载脚本 来辅助debug

cd ${your_path}/local_script

python3 debug_analyse.py -d ${your_case_path}

参考示例:

cd /leviwu/test/local_script
python3 debug_analyse.py -d /leviwu/minitest-case/user_case/my_case

如果控制台有标准输出,说明 case 分析成功

# 常见错误:

# 1.ModuleNotFoundError, ImportError...

请确保模块完整,因为在inspect .py文件的时候,相当于会将 py 执行一遍 如果使用了第三方库,请一并将第三方库源码上传(建议把使用到的第三方库统一放置于一个目录)。

# 2.ValueError: source code string cannot contain null bytes

请确保文件是UTF-8编码

# 需要帮助