0

我正在寻找一种方法来在每个测试的基础上设置默认超时。

我正在写一些在守夜人中的端到端测试。其中一项测试需要多次点击 API 来设置初始测试条件。为了运行测试,有必要填充一些用户数据。这发生在 before() 方法中。

问题是, before() 在达到默认超时间隔时会超时。我已经阅读了设置全局默认超时的文档,但我不想到处增加它。我怎样才能在每次测试的基础上做到这一点?

异步之前/之后
https://nightwatchjs.org/guide/#asynchronous-before-each-and-after-each-
设置全局 asyncHookTimeout
https://github.com/nightwatchjs/nightwatch/blob/master/examples/globalsModule。 js#L20

测试代码如下:

const { TEST_USER } = require('../../definitions/users');
const { TEST_USER_DATA } = require('../../definitions/users/data');

module.exports = {
    async before(browser, done) {
        // the default interval is here, but changing it doesn't have any effect
        console.log(browser.options.globals.asyncHookTimeout); // 10000

        const usersPO = browser.page.users();

        // get the user from the API to test with
        const testUser = await usersPO.getUser(TEST_USER);

        // post test data to the user
        await usersPO.postUserData(testUser.id, TEST_USER_DATA); // this will exceed the timeout.

        // finished with async test setup
        done();
    },
    // Tests

};
4

1 回答 1

0

一种方法是在每个测试中设置 browser.options.globals.asyncHookTimeout 值,这将覆盖配置文件中的默认值。

我希望这能帮到您。

干杯!

于 2020-02-16T15:18:58.013 回答