gpt4 book ai didi

javascript - 我可以从 onprepare 中的函数传递参数来覆盖 Protractor 配置文件吗

转载 作者:行者123 更新时间:2023-11-28 21:38:19 26 4
gpt4 key购买 nike

我试图在 onprepare 状态下调用一个函数(promise),它将返回一个包含所有需要运行的测试的 specs 数组;我需要将其传递给配置文件中的规范

var Excel_Input = require('./Utility/Excel_Input.js');
var HtmlReporter = require('protractor-beautiful-reporter');
var specArray=[''];
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs:specArray,
allScriptsTimeout: 400000,
getPageTimeout: 400000,
jasmineNodeOpts: {
defaultTimeoutInterval: 400000,
},

params: {
},

onPrepare: async function() {
var excelData = new Excel_Input();
await excelData.readFromExcel('dir','sheetName').then(function (result) {
specArray.push(result[0].specPath);
console.log("spec Array: "+specArray);
});
browser.manage().deleteAllCookies();
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: './../XO_Protractor_SOM/Reports/screenshots'
}).getJasmine2Reporter());
}
};

控制台打印:

spec Array: ,Progression/sampleTest.js

但它并没有覆盖配置文件中的实际规范

最佳答案

将读取 excel 代码块从 onPrepare() 移动到文件头。

var Excel_Input = require('./Utility/Excel_Input.js');
var HtmlReporter = require('protractor-beautiful-reporter');

var excelData = new Excel_Input();
var execSpecs= await excelData.readFromExcel('dir','sheetName');

var specArray=[''];
specArray.push(execSpecs[0].specPath);
console.log("spec Array: "+specArray);

exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs:specArray,
allScriptsTimeout: 400000,
getPageTimeout: 400000,
jasmineNodeOpts: {
defaultTimeoutInterval: 400000,
},

params: {
},

onPrepare: function() {
browser.manage().deleteAllCookies();
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: './../XO_Protractor_SOM/Reports/screenshots'
}).getJasmine2Reporter());
}
};

关于javascript - 我可以从 onprepare 中的函数传递参数来覆盖 Protractor 配置文件吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55348397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com