SuperAPI AI 工具集

running-webdriverio-tests

测试与质量

查看项目

更新于 10-16 09:18

技能介绍

用途

该技能用于从命令行运行 WebdriverIO 测试文件。适用场景包括:调试测试、收集关于测试行为的上下文,或验证某项改动是否解决了问题。

主要能力

  • 运行 WebdriverIO 测试,主命令为 npx wdio,默认配置文件为 wdio.conf.js。
  • 支持按 spec 文件运行单个或多个文件,例如 npx wdio --spec=test/specs/home.js,或同时指定多个 --spec。
  • 支持按 suite 运行,suite 名称在 WebdriverIO 配置文件的 suites 属性中定义,例如 npx wdio --suite=auth。
  • 支持排除文件,例如 npx wdio --exclude=test/specs/home.js,可与 --spec 或 --suite 混用。
  • 提供多个关键 CLI 选项:--spec、--suite、--exclude、--logLevel、--bail、--maxInstances、--baseUrl、--repeat。
  • 支持通过 Mocha 的 .only 和 .skip 临时隔离单个测试。

使用方式

项目上下文文件

在选择运行命令前,若可用,应读取以下项目缓存文件:

  • .webdriverio-skills/project-context.md
  • .webdriverio-skills/project-context.json
  • .webdriverio-skills/custom-rules.md
  • references/website-analysis/<target>/website-analysis.md

使用这些文件来优先采用项目认可的脚本、配置、环境标志和服务器目标。使用网站分析参考来优先运行高影响的 route/component 测试。<target> 解析为小写的站点主机(优先使用显式 URL 或项目 baseUrl 主机),回退为 unknown-target。如果文件缺失或过期,先运行 managing-project-customizations。

选择要运行的测试

当项目上下文中发现 package.json 脚本时,优先使用它们(例如 npm run test:e2e、npm run test:wdio:debug),然后再使用原始的 npx wdio。

按 spec 文件:

# 单个文件
npx wdio --spec=test/specs/home.js

# 多个文件
npx wdio --spec=test/specs/home.js --spec=test/specs/register.js

按 suite:

npx wdio --suite=auth

排除文件:

npx wdio --exclude=test/specs/home.js

关键 CLI 选项

选项 说明
--spec 运行特定 spec 文件或通配符
--suite 运行 wdio.conf.js 中的命名 suite
--exclude 从运行中排除 spec 文件
--logLevel trace、debug、info、warn、error、silent
--bail N 次失败后停止(默认:0 = 全部运行)
--maxInstances 并行浏览器实例数(2–10)
--baseUrl 覆盖 browser.url() 调用的基础 URL
--repeat 重复运行 specs/suites N 次

日志级别

调试时使用 --logLevel=trace(最大输出);确认测试通过时使用默认(info)(减少噪音)。

npx wdio --logLevel=trace --spec=test/specs/home.js

Bail

npx wdio --bail=1

Max Instances

npx wdio --maxInstances=3

Base URL

更改用于相对路径的基础服务器(例如 browser.url('./homepage.html'))。

npx wdio --baseUrl=https://example.com/

隔离单个测试(Mocha)

临时编辑测试文件以添加 .only 或 .skip。

仅运行特定测试:

describe.only("Form Fields", function () { ... });
it.only("should submit form", function () { ... });

跳过特定测试:

it.skip("should return -1 unless present", function () { ... });

调试后记得还原 .only/.skip 更改。

适用场景

  • 调试 WebdriverIO 测试。
  • 收集关于测试行为的上下文。
  • 验证某项改动是否解决了问题。

限制

  • 测试耗时约 20 秒至 5 分钟,不应将慢测试视为失败。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。