我有一个测试要在一组页面上运行。我正在尝试将其作为参数化测试运行。
2 个测试用例不能具有相同的名称,因此使用字符串插值为它们提供唯一的名称,如示例中所示。我正在尝试使用下面的代码片段来实现这一目标。
import { test, expect } from '@playwright/test';
[
{ name: 'Alice'},
{ name: 'Bob' },
{ name: 'Charlie' },
].forEach(({name}) => {
test(`Publishing Error Message ${name}`, async ({ page }) => {
// Set the timeout to 200 seconds
test.setTimeout(200000);
});
});
仍然出现错误:
Error: duplicate test title "Publishing Error Message", first declared in example.spec.ts:9
问题可能是
test.setTimeout()
。
在 Playwright 中,
test.setTimeout()
旨在在测试函数之外用作一组测试之间的超时。
这意味着 test.setTimeout()
可能会干扰测试运行者。
尝试将
test.setTimeout()
替换为 testInfo.setTimeout()
,如专用 doc 页面中所示
示例:
import { test, expect } from '@playwright/test';
[
{ name: 'Alice' },
{ name: 'Bob' },
{ name: 'Charlie' },
].forEach(({ name }) => {
test(`Publishing Error Message ${name}`, async ({ page }, testInfo) => {
// Set the timeout to 200 seconds
testInfo.setTimeout(200000);
});
});