Сквозное тестирование электронного приложения в Windows
Чего я пытаюсь достичь:
Я хотел бы создать электронный проект с надлежащей конфигурацией сквозного тестирования без головы.
Возникли проблемы
Spectronjs, кажется, решение для достижения этой цели. Однако нет никакой конфигурации, чтобы предотвратить открытие окна при каждом тесте. Чтение некоторых потоков в репозитории + документация об электронике в отношении тестирования упоминает Xvfb. Я пытался обдумать это, но до сих пор понимаю, что это не может быть установлено в Windows? И что нет альтернативы.
Список на странице включает в себя другие параметры, такие как Appvoyer или CicleCI, но они снова являются новыми, и я едва могу найти руководство по этим вопросам, не говоря уже о том, что мне не очень нравится, что я должен делать все эти шаги (ссылка на github / bitbucket account и т. д.).
Я также пытался просмотреть демонстрационные приложения со страницы списка Electronjs, но не все из них имеют тесты, и когда они это делают, они когда-то написаны на том, что, кажется, другой язык программирования, или специально предназначены для угловых или реагировать, в то время как с моей стороны я стремлюсь использовать vuejs.
Может кто-нибудь указать мне на чистый пример автономного конца, чтобы закончить безголовый тест электронного приложения на Windows?
0 ответов
Есть несколько вариантов, как E2E протестировать приложение Electron, к сожалению, ни один из них не является действительно безголовым. В Windows вам не нужен Xvfb, это вещь Linux. В Windows "экран" доступен даже в средах CI (у меня есть опыт работы с Appveyor и Azure Pipelines).
- Ядро кукловода ( Ядро кукловода не содержит хрома)
- Спектрон
- Селен-WebDriver
- Webdriver.io
В прошлом я использовал Spectron, но недавно я переключился на Puppeteer, и я очень доволен переключателем.
Короткий тест кукловода:
const electron = require("electron");
const puppeteer = require("puppeteer-core");
const delay = ms =>
new Promise(resolve => {
setTimeout(() => {
resolve();
}, ms);
});
(async () => {
try {
const app = await puppeteer.launch({
executablePath: electron,
args: ["."],
headless: false,
});
const pages = await app.pages();
const [page] = pages;
await page.setViewport({ width: 1200, height: 700 });
await delay(5000);
const image = await page.screenshot();
console.log(image);
await page.close();
await delay(2000);
await app.close();
} catch (error) {
console.error(error);
}
})();
Я тестирую и собираю электронное приложение в конвейерах Azure (бесплатно для проектов с открытым исходным кодом) на Win, Linux и MacOS с этим конфигом: azure-pipelines.yml