【发布时间】:2019-09-09 23:00:59
【问题描述】:
我正在使用 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,最后一个只是一个空白页。
打开所有浏览器后,URL 被重定向的 2 个位置中的 1 个也开始执行测试。
似乎每个新场景都会打开一个新的浏览器窗口,这并不好,因为我最终会得到很多浏览器窗口。有没有办法指定 Puppeteer 仅使用一个浏览器进行测试或至少基于每个功能文件?
我的项目层次结构是这样的:
e2e/
- features/
- feature1/
- feature1.feature
- steps.js (given, when, then, etc.)
- feature2/
- world.js
【问题讨论】:
标签: javascript cucumber puppeteer cucumberjs