2 WebdriverIO
4 分钟阅读
原文链接: https://tauri.app/develop/tests/webdriver/example/webdriverio/
请务必先阅读前置条件说明,才能跟随本指南操作。
本指南手工把 WebdriverIO 接到 tauri-driver 上,以便你看清各部分如何配合。大多数项目应当改用
@wdio/tauri-service,它把这一切自动化并支持 macOS——参见
WebDriver 概述。
这个 WebDriver 测试示例将使用 WebdriverIO 及其测试套件。我们假设你已经安装了 Node.js,以及 npm 或 yarn,尽管完成的示例项目使用的是 pnpm。
为测试创建目录
让我们在项目中为编写这些测试开辟空间。这个示例项目我们会用一个嵌套目录,因为后面还会介绍其它框架,但通常你只需要用其中一个。用 mkdir e2e-tests 创建我们将使用的目录。本指南余下部分假定你位于
e2e-tests 目录中。
初始化 WebdriverIO 项目
我们将使用一个现成的 package.json 来引导这个测试套件,因为我们已经选定了具体的
WebdriverIO 配置项,并希望展示一个简单可用的方案。本节末尾有一个折叠的从零开始配置指南。
package.json:
| |
我们有一个以 test 命令暴露的脚本,用于把某个 WebdriverIO 配置作为测试套件运行。我们还用到了最初设置时由
@wdio/cli 命令添加的若干依赖。简而言之,这些依赖用于最简单的本地 WebDriver 运行器配置,以 Mocha 作为测试框架,并使用简单的 Spec Reporter。
如果你想看如何从零开始搭建项目,请点我
该 CLI 是交互式的,你可以自行选择要使用的工具。注意你可能会与本指南余下部分产生分歧,需要自己处理这些差异。
让我们把 WebdriverIO CLI 加入这个 npm 项目。
包管理器
| |
| |
包管理器
| |
| |
配置
你可能注意到 package.json 中的 test 脚本提到了 wdio.conf.js 文件。那就是 WebdriverIO
配置文件,它控制我们测试套件的大部分行为。
wdio.conf.js:
| |
如果你对 config 对象上的属性感兴趣,我们建议阅读相关文档。
对于非 WDIO 特有的条目,注释解释了为什么我们要在 onPrepare、beforeSession 和 afterSession 中运行命令。我们
还把 specs 设为 "./test/specs/**/*.js",所以现在来创建一个 spec。
Spec
Spec 包含测试你实际应用的代码。测试运行器会加载这些 spec,并按它认为合适的方式自动运行。现在就在我们指定的目录中创建 spec。
test/specs/example.e2e.js:
| |
顶部的 luma 函数只是一个供某个测试使用的辅助函数,与实际测试应用无关。如果你熟悉其它测试框架,可能会注意到
用到的 describe、it 和 expect 等相似的函数。其它 API,例如 $ 及其暴露的方法,都记录在
WebdriverIO API 文档中。
运行测试套件
现在配置和 spec 都准备好了,让我们运行它!
包管理器
| |
| |
| |
可以看到 Spec Reporter 告诉我们 test/specs/example.e2e.js 文件中的 3 个测试全部通过,以及最终报告
Spec Files: 1 passed, 1 total (100% completed) in 00:00:01。
使用 WebdriverIO 测试套件,我们只用几行配置和一个运行命令,就轻松为 Tauri 应用启用了端到端测试!更棒的是,我们完全不需要修改应用。