框架
WebdriverIO Runner 内置支持 Mocha、Jasmine 和 Cucumber.js。您还可以将其与第三方开源框架集成,如 Serenity/JS。
要将 WebdriverIO 与测试框架集成,您需要在 NPM 上有一个适配器包。 请注意,适配器包必须安装在与 WebdriverIO 相同的位置。 因此,如果您全局安装了 WebdriverIO,请确保也全局安装适配器包。
将 WebdriverIO 与测试框架集成可让您在规范文件或步骤定义中使用全局 browser 变量访问 WebDriver 实例。
请注意,WebdriverIO 还将负责实例化和结束 Selenium 会话,因此您不必自己做这些。
使用 Mocha
首先,从 NPM 安装适配器包:
- npm
- Yarn
- pnpm
- Bun
npm install @wdio/mocha-framework --save-dev
yarn add @wdio/mocha-framework --dev
pnpm add @wdio/mocha-framework --save-dev
bun add @wdio/mocha-framework --dev
默认情况下,WebdriverIO 提供了一个内置的断言库,您可以立即开始使用:
describe('my awesome website', () => {
it('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
WebdriverIO 支持 Mocha 的 BDD(默认)、TDD 和 QUnit 接口。
如果您喜欢以 TDD 风格编写规范,请在配置中的 mochaOpts 属性中将 ui 设置为 tdd。现在您的测试文件应该这样编写:
suite('my awesome website', () => {
test('should do some assertions', async () => {
await browser.url('https://webdriver.io')
await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js | WebdriverIO')
})
})
如果您想定义其他 Mocha 特定设置,可以在配置文件中使用 mochaOpts 键。所有选项的列表可以在 Mocha 项目网站上找到。
注意: WebdriverIO 不支持在 Mocha 中使用已弃用的 done 回调:
it('should test something', (done) => {
done() // 抛出 "done is not a function" 错误
})
Mocha 选项
以下选项可以在您的 wdio.conf.js 中应用,以配置您的 Mocha 环境。注意: 并非所有选项都受支持,例如应用 parallel 选项将导致错误,因为 WDIO 测试运行器有自己的方式来并行运行测试。您可以将这些框架选项作为参数传递,例如:
wdio run wdio.conf.ts --mochaOpts.grep "my test" --mochaOpts.bail --no-mochaOpts.checkLeaks
这将传递以下 Mocha 选项:
{
grep: ['my-test'],
bail: true
checkLeacks: false
}
支持以下 Mocha 选项:
require
当您想添加或扩展一些基本功能时,require 选项很有用(WebdriverIO 框架选项)。
类型:string|string[]
默认值:[]