运行测试
基本用法
在项目根目录下运行以下命令,即可执行项目中的 YAML 测试用例:
指定用例目录或文件
有配置时,文件或目录参数用于筛选用例。运行全部用例、单 个文件或子目录时,命令使用同一份项目配置。
从项目根目录运行以下命令:
这些命令共用配置中的 Node(节点)和 Project(执行项目),默认输出位置也相同。
配置与路径规则
默认配置查找只检查当前工作目录。从子目录运行时,请显式指定项目配置:
此时,测试根目录是配置所在的父目录。默认输出仍位于父目录的 midscene_run。
没有配置时,文件参数用于收集指定 YAML,目录参数用于查找该目录下的 YAML。也支持当前工作目录之外的路径。省略参数时,从当前工作目录查找用例。不会加载目标文件或目录旁的配置。默认产物保存在当前工作目录的 midscene_run 中。
无配置时,不会注册任何 Node。YAML 如果引用了 Node,仍需通过配置注册。旧版 tasks/flow YAML 请使用 midscene 命令运行。
文件与标签筛选
脚手架生成的项目通过 files.include 选择用例。默认范围是 cases/ 下的 .yaml 和 .yml 文件。省略 files 时,框架递归查找测试根目录下的 YAML 文件,并忽略 node_modules、.git 和运行产物目录。
有配置时,路径参数会进一步缩小用例范围。--project、文件包含与排除规则,以及 tags(标签)筛选仍然生效。显式指定文件也需要满足这些规则。
传入路径参数后,如果所有 Project 都没有匹配的用例,命令会报筛选错误。部分 Project 没有匹配用例时,其他 Project 仍可运行。
未传路径参数时,沿用原有行为:如果文件存在,但 tags 排除了全部用例,命令可以成功退出。文件查找失败等其他错误仍会导致运行失败。
切换项目与 SDK 调用
运行另一个项目时,请进入该项目目录,或用 --config 指定配置。目录参数不会改变配置查找位置。
SDK 使用以下参数:
projectRoot:指定默认配置查找目录。省略时使用cwd。testPath:指定文件或目录筛选路径。相对路径以cwd为基准。configPath:显式选择配置。相对路径以cwd为基准,测试根目录为配置所在目录。
以上规则适用于测试运行。nodes 子命令保留原有的目录和配置解析规则。
配置查找行为迁移
默认配置只从当前工作目录(cwd)加载。框架不会向上查找父目录,也不会因指定用例目录而切换配置。
如果旧命令依靠目录参数加载另一个项目的配置:
请改为显式指定配置:
也可以先进入 other-project,再运行 pnpm exec midscene-test。仅运行其中一个文件时,在原工作目录执行:
升级时,请检查以下路径:
files.include、files.exclude和output.reportDir以配置所在目录为基准。如果配置位于config/,用例位于同级的cases/,请将配置移到两者的共同父目录,并将files.include设为['cases/**/*.yaml']。- 默认产物写入配置目录下的
midscene_run。请同步调整 CI 的产物收集路径,或将配置移到项目根目录。 - 同 时指定用例路径和
--config时,--config的相对路径现在以 cwd 为基准。用例路径和--result-dir的相对路径也以 cwd 为基准。
无配置时仍可查找、收集 YAML,但引用的 Node 必须通过配置注册。这不等于可以零配置执行任意 YAML。
过滤执行项目与指定配置文件
如果工程中配置了多个平台或运行环境,可以通过 --project 指定只运行特定的执行项目(Project),也可以通过 --config 指定自定义配置文件:
为特定执行项目生成 Node 说明书时,同样可以使用 --project 参数:

