Глобальная переменная, сохраняющаяся после закрытия браузера [веб-драйвер wdio io]

У меня есть несколько наборов и в каждом несколько файлов спецификаций.

Я заметил, что после того, как wdio запускает все тесты в любом файле спецификации, он закрывает браузер и открывает новый экземпляр браузера. В этом случае удаляется даже локальное хранилище.

Поэтому мне трудно найти место для определения переменной, значение которой сохраняется на протяжении всех тестов.

Я попытался определить массив поверх моего wdio.base.conf.js файла.

let globalStuff = []

const config = { ...


beforeTest: function (test) {
      globalStuff.push(Math.random())
},

afterSession: function (config, capabilities, specs) {
    console.log(globalStuff)
    },
 }

Наблюдение: значения globalStuff сбрасываются каждый раз и содержат только x элементов (x - это число, если it проверяет в файле спецификации)

Ожидание: значения globalStuff должны представлять собой совокупность всех переданных значений.


person Confront    schedule 05.06.2020    source источник


Ответы (1)


Один из более простых способов добиться этого - использовать глобальный объект.

вы можете установить что-то вроде global.platform = web в вашем конфигурационном файле, и это должно быть доступно во всех ваших тестах. Точно так же вы можете установить любое количество уникальных свойств для глобального объекта, и они должны быть доступны в ваших тестах.

Ваш фрагмент должен быть таким, как показано ниже.

global.globalStuff = []

const config = { ...
  beforeTest: function(test) {
    globalStuff.push(Math.random())
  },

  afterSession: function(config, capabilities, specs) {
    console.log(globalStuff)
  },
}

Здесь - это пример проекта, реализующего это.

person Raju    schedule 05.06.2020
comment
Спасибо; Но как мне инициализировать это global. globalStuff? если я заменю свой globalStuff в моем примере на global. globalStuff, я получу тот же результат. Я думаю, проблема здесь: global.globalStuff = [] поверх файла конфигурации. - person Confront; 06.06.2020
comment
Я обновил свой ответ. Не могли бы вы попробовать этот фрагмент? - person Raju; 06.06.2020
comment
`` '------- afterSession ---------' ['0,14', '0,67'] '------- afterSession ---------' ['0,69', '0,67', '0,89', '0,37'] `` Таким образом, каждый сеанс получает новый набор значений !!! Я ожидал увидеть это после второго журнала: ['0,14', '0,67', '0,69', '0,67', '0,89', '0,37'] - person Confront; 06.06.2020
comment
Возможно, вам стоит переместить это в before hook, чтобы он запускался только один раз за выполнение. - person Raju; 07.06.2020