Можно ли получить доступ к переменной, объявленной в wdio.conf? - PullRequest
0 голосов
/ 19 октября 2019

В файле wdio.conf onPrepare Я храню все свои файлы объектов в массиве.

let listOfFiles = fs.readdirSync(process.cwd() + '/features');
var featureFiles = [];

listOfFiles.map((file) => {
    featureFiles.push(file)
});

Можно ли использовать массив featureFiles в другом файле?


Я хочу создать список файлов объектов во время выполнения и назначить его переменной "featureFiles" (которая объявлена, но не имеет значения для начала). Из того, что я видел до сих пор, это невозможно сделать в wdio.conf, так как вы всегда получите значение, объявленное для вашей переменной в начале, которое в моем случае является пустым массивом.

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Таким образом, если вы хотите использовать featureFiles во всем тестовом сценарии, то один из следующих вариантов - использование глобального объекта.

В файле wdio.conf попробуйте следующее:

let featureFiles = [];
...
export.config = {
    ... //some line of code

    //OnPrepare hook
    onPrepare(){
        let listOfFiles = fs.readdirSync(process.cwd() + '/features');

        listOfFiles.map((file) => {
            featureFiles.push(file);
        });
    }

    //before session hook
    beforeSession(){
        global.featureFiles = featureFiles; //assigning the value of featureFiles to a global variable
    }
}

Как только вышесказанное будет сделано. Переменная featureFiles будет доступна во всех тестовых файлах.

ПРИМЕЧАНИЕ: vscode intellisense может не распознавать переменную, но вы все равно можете использовать ее.

0 голосов
/ 19 октября 2019

да, в файле, который вы разместили здесь, добавьте

module.exports = featureFiles

в другой файл, где вы хотите использовать featureFiles, вы можете сделать что-то вроде

const featureFiles = require('path/to/your/first/file`);
...