首页 > 解决方案 > 使用自定义匹配器扩展 expect-webdriverio

问题描述

我需要为我的 wdio 打字稿框架制作一个自定义匹配器。我查看了https://github.com/webdriverio/expect-webdriverio/blob/master/docs/Extend.md并完成了所有操作,我复制并粘贴了完全相同的代码。所以在我的 before() 钩子中:

const matchers = require('myMatchers');
matchers.addCustomMatchers();

在我的 wdio conf 文件旁边:

module.exports = {
    addCustomMatchers: () => {
        console.log("MY MATCHER");
        expect.extend({
            myMatcher(actual, expected) {
                return { pass: actual === expected, message: () => 'some message' }
            },
        })
    }
}

当我开始测试时,我在控制台中看到“MY MATCHER”行。所以它得到正确执行。但是我在尝试做期望时看不到 myMatcher。我错过了什么?

标签: typescriptwebdriver-io

解决方案


文档有效。对于 TypeScript 项目,您还必须声明类型。

请参阅我的示例项目:

  1. 钩前
  2. 匹配器
  3. 匹配器类型
  4. 测试中的使用

注意:确保为您提供最新的 wdio 包和有效的 tsconfig.json。你可以在项目中找到所有这些。


推荐阅读