Из-за последнего обновления хром (v54) мы заметили, что наши испытания транспортира не сработали. Мы попытались обновить последнюю версию gulp-protractor (v3.0.0), которая, в свою очередь, загружает последний веб-драйвер (v2.25), чтобы устранить проблему, но, к сожалению, возникла новая ошибка, которую мы не смогли решить.ошибка gulp-protractor с chrome v54/web driver v2.25
Все прошло отлично до обновления хрома.
Наша конфигурация транспортир выглядит следующим образом:
exports.config = {
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
onPrepare: function() {
var fs = require('fs');
var testDir = 'testresults/';
if (!fs.existsSync(testDir)) {
fs.mkdirSync(testDir);
}
var jasmineReporters = require('jasmine-reporters');
// returning the promise makes protractor wait for the reporter config before executing tests
return browser.getProcessedConfig().then(function() {
// you could use other properties here if you want, such as platform and version
var browserName = 'browser';
browser.getCapabilities().then(function (caps) {
browserName = caps.caps_.browserName.replace(/ /g, "_");
var junitReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: testDir,
// this will produce distinct xml files for each capability
filePrefix: 'test-protractor-' + browserName,
modifySuiteName: function (generatedSuiteName) {
// this will produce distinct suite names for each capability,
// e.g. 'firefox.login tests' and 'chrome.login tests'
return 'test-protractor-' + browserName + '.' + generatedSuiteName;
}
});
jasmine.getEnv().addReporter(junitReporter);
});
});
},
baseUrl: 'http://localhost:3000',
// Spec patterns are relative to the current working directory when
// protractor is called.
specs: [paths.e2e + '/**/*.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
}
};
Ошибка:
[13:27:13] E/launcher - Error: Error
at C:\ws\node_modules\protractor\built\util.js:55:37
at _rejected (C:\ws\node_modules\q\q.js:844:24)
at C:\ws\node_modules\q\q.js:870:30
at Promise.when (C:\ws\node_modules\q\q.js:1122:31)
at Promise.promise.promiseDispatch (C:\ws\node_modules\q\q.js:788:41)
at C:\ws\node_modules\q\q.js:604:44
at runSingle (C:\ws\node_modules\q\q.js:137:13)
at flush (C:\ws\node_modules\q\q.js:125:13)
at nextTickCallbackWith0Args (node.js:420:9)
at process._tickCallback (node.js:349:13)
[13:27:13] E/launcher - Process exited with error code 100
Хотя ваш код не решить мою проблему из коробки он явно привлекли внимание к проблеме - по-видимому, в недавнем хромом WebDriver доступ обновления к частной собственности " caps_ 'стало невозможным. Вероятно, он не должен был использовать его так, чтобы решение было таким: 'browserName = capability.get ('browserName'). Replace (//g," _ ");' [Здесь] (https: // github .com/angular/protractor/issues/3036) является ссылкой на кого-то еще с этой проблемой. Большое вам спасибо за помощь! Я никогда бы не подумал, что функция onPrepare вызовет такую туманную ошибку. – PremiumTier
Нет проблем. Сообщение об ошибке 'runFilenameOrFn_' не помогает. В конечном итоге это будет улучшено. – cnishina