Установить время ожидания по умолчанию для каждого теста - PullRequest
0 голосов
/ 15 февраля 2020

Я ищу способ установить тайм-аут по умолчанию для каждого теста.

Я пишу некоторые сквозные тесты в Nightwatch. Один из тестов требует несколько раз нажать API для настройки начальных условий тестирования. Для запуска теста необходимо заполнить некоторые пользовательские данные. Это происходит в методе before ().

Проблема в том, что before () будет превышать время ожидания, когда оно достигнет заданного по умолчанию интервала времени ожидания. Я прочитал документацию для установки глобального тайм-аута по умолчанию, но я не хочу увеличивать его везде. Как я могу сделать это для каждого теста?

Asyn c До / После
https://nightwatchjs.org/guide/#asynchronous до каждого и после каждого -
Установка Global 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

};

1 Ответ

0 голосов
/ 16 февраля 2020

Один из способов сделать это - установить значение browser.options.globals.asyncHookTimeout в каждом тесте, которое будет переопределять значение по умолчанию из файла конфигурации.

Надеюсь, это поможет вам.

Ура!

...