#javascript #angular #selenium #protractor #azure-devops
#javascript #angular #selenium #транспортир #azure-devops
Вопрос:
Я пытаюсь запустить тесты e2e в своем приложении angular. Мои тесты проходят локально при запуске ng e2e
, но не в моем конвейере. Я собираюсь поделиться своим protractor.conf, задачами конвейера и результатами, которые я получаю от задачи, которая завершается с ошибкой, ниже.
Еще немного предыстории:
- Я пытаюсь запустить код e2e из пустого приложения angular. Тест, который я пытаюсь запустить, просто входит в AD, переходя на мой веб-сайт, вводя имя пользователя / пароль и затем проверяя, перенаправлен ли пользователь на мой веб-сайт.
- Я запускаю это из конвейера выпуска, где репозиторий, содержащий тесты e2e, добавляется как артефакт.
- Я использую xpaths для поиска элементов на странице
- Я опустил свой код jasmine, потому что не думаю, что это актуально, поскольку тесты проходят локально. Однако, если я ошибаюсь в этом вопросе, дайте мне знать, и я опубликую его.
protractor.conf.js
const { SpecReporter } = require('jasmine-spec-reporter');
process.env.CHROME_BIN = process.env.CHROME_BIN || require("puppeteer").executablePath();
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
chromeOptions: {
args: ["--headless", "--disable-gpu", "--window-size=1200,900"],
binary: process.env.CHROME_BIN
},
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 120000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.e2e.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
Пожалуйста, помогите мне пройти эти тесты в Azure
Спасибо!
РЕДАКТИРОВАТЬ: у меня есть эта задача «Обновить Webdriver», потому что я прочитал, что я должен это где-то сделать, на самом деле это не меняет результат, если он есть или нет
Комментарии:
1. не могли бы вы поделиться своим тестовым файлом?
2. Пожалуйста, проверьте chromedriver.exe (в вашем журнале вы установили
chromedriver 2.4
6) совместим с Chrome. Если вы не указали средуCHROME_BIN
, вы используете chrome, поставляемый пакетомpuppeteer
, найдите двоичный файл Chrome из этого пакета и проверьте его версию.
Ответ №1:
Вы пытались увеличить свой ALLSCRIPTSSTIMEOUT?
Время ожидания в миллисекундах для каждого сценария, запускаемого в браузере. Это должно быть больше максимального времени, необходимого вашему приложению для стабилизации между задачами.