Кукловод - Огурец - Используйте один браузер для тестов - PullRequest
0 голосов
/ 19 апреля 2019

Я использую 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

1 Ответ

0 голосов
/ 02 мая 2019

Вы пытались добавить After:

After(async function() {
    // Teardown browser
    if (this.browser) {
       await this.browser.close();
    }
});
...