можно передать параметр из функции в onprepare для перезаписи файла конфигурации транспортира - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь вызвать функцию (обещание) в состоянии onprepare, которая возвращает массив спецификаций всех тестов, которые необходимо выполнить; Мне нужно передать это в спецификации в файле конфигурации

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

но это не перезаписывает действительные спецификации в файле конфигурации

1 Ответ

0 голосов
/ 26 марта 2019

Перемещение блока кода чтения 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());
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...