webdriver.io-无法加载规格文件,因为它们依赖 `browser` 对象

我正在使用 Webdriver.io 在大量页面上运行测试。因为页面的所有规范都在 JSON 文件中,所以我有一个特殊的类来设置测试。它看起来像这样:

module.exports = class PageTester {
    suiteName = '';
    browser = {};

    constructor (suiteName, browser) {
        this.suiteName = suiteName;
        this.browser = browser;
    }

    testModel(currentModel) {

        describe(this.suiteName + ' endpoint ' + currentModel.url, () => {
            this.browser.url(currentModel.url);

            /* it() statements for the test */

        });
    }        
}

然后在我的规范文件夹中,我有一个加载 JSON 并将其插入 PageTester 类的文件,如下所示:

const PageTester = require('../modules/PageTester');

const models = require('/path/to/some/file.json');
const pageTester = new PageTester('Some Name', browser);

for (const modelName in models) {
    pageTester.testModel(models[modelName]);
}

当我运行这段代码时,WebdriverIO 给了我以下警告:

WARN @wdio/mocha-framework: Unable to load spec files quite likely because they rely on `browser` object that is not fully initialised.
`browser` object has only `capabilities` and some flags like `isMobile`.
Helper files that use other `browser` commands have to be moved to `before` hook.
Spec file(s): /suite/test/specs/test.js

所有测试似乎都运行良好,所以我实际上不明白这个警告在抱怨什么以及忽略它可能会产生什么负面后果。所以我想a)理解为什么会发生这种情况,b)考虑到我的代码设置方式,如何摆脱这个警告。

stack overflow Webdriver.io - Unable to load spec files quite likely because they rely on `browser` object
原文答案

相关问题