使用字符串插值传递参数来测试用例名称

问题描述 投票:0回答:1

我有一个测试要在一组页面上运行。我正在尝试将其作为参数化测试运行。

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
javascript typescript parameter-passing playwright
1个回答
0
投票

问题可能是

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);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.