Каждая часть этой работы работает, за исключением того, что она просто сбрасывает исходный junitresults.xml в базовую папку и игнорирует код, чтобы поместить его в папку reportPath.Нужна помощь в onPrepare использовать глобальные переменные в Protractor
Функция onComplete не имеет проблем с доступом к глобальным переменным для использования в своем node_module. (Я должен искусственно иметь тестовый файл junitresults.xml, установленный в папке reportPath, для которого он работает, хотя, поскольку onPrepare не помещает его там).
Кажется, что функция onPrepare полностью игнорирует глобальные переменные, установленные внутри одного и того же onPrepare. Как я могу получить доступ к ним? Я даже пытался сделать отдельную не-глобальную переменную для доступа к ней, и это тоже игнорирует. Помоги пожалуйста! Благодаря!
...
multiCapabilities: [
{ browserName: 'firefox' },
{ browserName: 'chrome' }
],
onPrepare: function() {
var capsPromise = browser.getCapabilities();
capsPromise.then(function(caps) {
global.browserName = caps.caps_.browserName.replace(/ /g,"-");
global.browserVersion = caps.caps_.version;
// browserName = global.browserName; // was just testing if not-global would work
global.reportPath = 'c:/QA/test-results/' + global.browserName + '/';
});
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: global.reportPath,
filePrefix: 'junitresults'
}));
return global.browserName, global.browserVersion, global.reportPath;
},
onComplete: function() {
var HTMLReport = require('jasmine-xml2html-converter');
// Call custom report for html output
testConfig = {
reportTitle: 'Test Execution Report',
outputPath: reportPath,
seleniumServer: 'default',
applicationUrl: browser.baseUrl,
testBrowser: global.browserName + ' v.' + global.browserVersion
};
new HTMLReport().from(reportPath + 'junitresults.xml', testConfig);
console.log("... aaaannnnd... done.");
},
Спасибо за ответ. Перемещение инициализации репортера в 'getCapabilities' было результатом успешной подачи файлов xml в соответствующие каталоги, но у него был дополнительный неудачный эффект от изменения названия всех моих тестовых спецификаций на« сфокусированную спецификацию », поэтому я не могу скажите, какой тест уже есть, а также полностью исключить некоторые из моих тестовых шагов. :( – Defpotec2020
Также @alecxe означает, что настройка свойств на глобально доступном объекте 'browser' означает« просто изменение «global.' на« browser.' »или есть ли что-то еще, чем это? Я учусь, когда я иду. – Defpotec2020
@ Defpotec2020 yup, измените 'global.' на' browser.' и каждый раз, когда вы обращаетесь к переменной, используйте 'browser.variable'. – alecxe