Я использую Puppeteer и Cucumber для тестирования E2E в моем веб-приложении.
В каждом файле "steps.js" для каждой функции у меня есть это в методе before
:
Before(async function() {
this.browser = await puppeteer.launch({ headless: false });
setDefaultTimeout(60 * 1000);
this.page = await this.browser.newPage();
await this.page.emulate(GalaxyS5);
await this.page.goto(URL);
});
Проблема в том, что когда я запускаю его через cucumber-js
, вот так: .\node_modules\.bin\cucumber-js test\e2e\features
, в итоге получается, что у меня открыто 3 браузера Chromium. Затем 2 из них идут по указанному мною URL, а последний - просто пустая страница.
После того, как все браузеры открыты, 1 из 2, куда URL был перенаправлен, также начинает выполнение тестов.
Кажется, что в каждом новом сценарии открывается новое окно браузера, что нехорошо, потому что я получаю много окон браузера. Есть ли способ указать Puppeteer использовать только один браузер для тестирования или хотя бы для каждого файла функции?
Моя иерархия для моего проекта такая:
e2e/
- features/
- feature1/
- feature1.feature
- steps.js (given, when, then, etc.)
- feature2/
- world.js