Metadata-Version: 2.4
Name: xmind2testcase-lq
Version: 1.5.0.1
Summary: XMind2TestCase 的定制分支：面向禅道导入的中文测试用例转换，用例编号前缀可配置
Author: liqin
License-Expression: MIT
Project-URL: Homepage, https://gitee.com/QiLi1998/xmind2testcase-lq
Project-URL: Repository, https://gitee.com/QiLi1998/xmind2testcase-lq
Project-URL: 上游项目, https://github.com/zhuifengshen/xmind2testcase
Keywords: xmind,testcase,zentao,testlink,思维导图,测试用例,xmind2testcase
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: xmind
Requires-Dist: flask
Requires-Dist: arrow
Dynamic: license-file

# xmind2testcase-lq

> **这是 [xmind2testcase](https://github.com/zhuifengshen/xmind2testcase) 的定制分支（fork），不是上游官方版本。**
> 面向「XMind 思维导图 → 禅道（ZenTao）测试用例 CSV」这一条链路做了调整，
> 并把原本写死在源码里的项目相关信息改成了可配置项。

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## 与上游的主要差异

| 方面 | 上游 `xmind2testcase` 1.5.0 | 本分支 `xmind2testcase-lq` |
|---|---|---|
| 导入包名 | `xmind2testcase` | `xmind2testcase_lq` |
| 禅道 CSV 表头 | 9 列（所属模块 / 用例标题 / …） | **10 列**（用例编号 / 用例描述 / 测试类型 / 前置条件 / 操作步骤 / 期望结果 / 通过准则 / 实际输出 / 测试结论 / 测试用例优先级） |
| 用例编号 | 无此列 | `<前缀>-<xmind文件名>-001`，**前缀可配置** |
| 用例编号前缀 | — | 参数 `case_id_prefix` > 环境变量 `XMIND2TESTCASE_CASE_ID_PREFIX` > 空 |
| 测试类型 | `1` / `2`（手动 / 自动） | 中文类型：正向功能 / 反向功能 / 接口 / 性能 / 界面 / 安全性 |
| 优先级映射 | 高 / 中 / 低 | 一级 / 二级 / 三级 / 四级 |
| 前置条件拼接 | 用 `\n----\n` 分隔 | 直接相连（逐条去空白） |
| 期望结果 | 只取第一条 | 支持多条，逐条编号后用换行连接 |
| 只取行数据 | 无 | 新增 `xmind_to_rows()`，不落盘 |
| 日志文件 | 无（或写死路径） | 环境变量 `XMIND2TESTCASE_LOG` 控制，目录自动创建 |
| `webtool` 包位置 | 顶层包 `webtool` | 收进 `xmind2testcase_lq.webtool`，不污染全局命名空间 |
| CLI 命令 | `xmind2testcase` | `xmind2testcase-lq` |

完整的逐文件差异见 [FORK_NOTES.md](FORK_NOTES.md)。

## 安装

```bash
pip install xmind2testcase-lq
```

从源码安装：

```bash
git clone https://gitee.com/QiLi1998/xmind2testcase-lq.git
cd xmind2testcase-lq
pip install .
```

## 使用

### 作为库调用

```python
from xmind2testcase_lq.zentao import xmind_to_rows, xmind_to_zentao_csv_file

# 不设置前缀：编号形如 登录功能-001
rows = xmind_to_rows("用例.xmind")

# 显式指定前缀：编号形如 我的项目-登录功能-001
rows = xmind_to_rows("用例.xmind", case_id_prefix="我的项目")

# 直接落盘成 CSV
csv_path = xmind_to_zentao_csv_file("用例.xmind", case_id_prefix="我的项目")
```

`rows` 第一行是表头，其后每行是一条用例。

### 通过环境变量配置

适合不想改代码、或要走命令行的情况：

```bash
# Linux / macOS
export XMIND2TESTCASE_CASE_ID_PREFIX="我的项目"

# Windows PowerShell
$env:XMIND2TESTCASE_CASE_ID_PREFIX = "我的项目"
```

```python
rows = xmind_to_rows("用例.xmind")   # 自动读取上面的环境变量
```

### 命令行

```bash
xmind2testcase-lq 用例.xmind -csv
xmind2testcase-lq 用例.xmind -csv --case-id-prefix=我的项目
xmind2testcase-lq 用例.xmind              # 同时输出 json / xml / csv
xmind2testcase-lq webtool 8000            # 启动本地 Web 转换工具
```

## 配置项

全部通过环境变量控制，也可以用函数参数覆盖（参数优先级更高）。

| 环境变量 | 作用 | 默认值 |
|---|---|---|
| `XMIND2TESTCASE_CASE_ID_PREFIX` | 用例编号前缀 | 空（编号不含前缀） |
| `XMIND2TESTCASE_LOG` | 日志文件路径，父目录不存在时自动创建 | 空（只输出到控制台） |
| `XMIND2TESTCASE_LOG_LEVEL` | 日志级别 | `INFO` |

> 设计原则：**源码中不出现任何本机路径或具体项目名**，所有环境相关信息都走配置。

## 已知问题

- `xmind2testcase_lq.webtool` 会把 `running.log`、`uploads/`、`data.db3`
  写在**包目录内**（沿用上游行为）。在只读的 site-packages 或受限环境下运行
  `xmind2testcase-lq webtool` 可能失败。命令行转换功能不受影响。

## 许可证与致谢

本项目基于 MIT 许可证发布，完整许可证文本见 [LICENSE](LICENSE)。

上游项目：[zhuifengshen/xmind2testcase](https://github.com/zhuifengshen/xmind2testcase)，
版权归 Devin 与 Toby Qin 所有。本分支保留了原始的 MIT 版权声明，仅在
上游 1.5.0 基础上做了上述定制改动。
