我正在与 Playwright 一起为 angular 应用开发 E2E 测试。我必须确保存在所需的条件选择器才能继续,否则跳过进一步的测试。
换句话说,如果
await page.isVisible('button[id=container]')
条件在 beforeAll
钩子中不满足,我需要跳过一组中的所有测试。
问题是只有第一个测试被跳过而第二个测试通过了(这是错误的)。请查看下面的屏幕截图。
代码如下:
test.describe.serial('Products ', () => {
let page: Page;
test.beforeAll(async ({ browser, baseURL }) => {
page = await browser.newPage();
await page.goto(baseURL as string, opt);
if (await page.isVisible('button[id=container]')) {
await page.locator('button[id=container]').click();
} else {
console.log('Error: Container tab is not loaded...');
test.skip();
}
});
test.only('Check if "Menu" tab is available', async () => {
... test goes here ...
});
test.only('Check if Orders page is available', async () => {
... test goes here ...
});
});
有意思的是剧作家在用
beforeEach
钩代替时跳过所有测试,但我想在beforeAll
钩内实现这个结果。