如何运行特定(选定的)测试用例以在特定浏览器上运行剧作家

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

我有很多剧作家测试用例,我希望某些选定的测试用例仅在 Chrome 上运行。怎么才能实现呢?

示例:

 test('test 1', async () => {
   
  });

 test('test 2', async () => {
   
  });

 test('test 3', async () => {
   
  });

现在我希望

test 1
案例仅在 Chrome 上运行,其余部分默认情况下应在每个浏览器上运行。

javascript selenium-webdriver playwright playwright-python playwright-test
4个回答
4
投票

我希望有更好的方法可以通过一些配置魔法来做到这一点,但您可以根据浏览器有条件地跳过:

test('Hello World', async ({ browserName, page }) => {
    
    test.skip(browserName.toLowerCase() !== 'chromium', 
    `Test only for chromium!`);
    
    // rest of test
});

0
投票

在命令行中使用带有“grep”命令的标签:

# This will run @chromeOnly
$ npx playwright test --grep @chromeOnly

# This will run @allBrowsers
$ npx playwright test --grep @allBrowsers

剧作家命令行


0
投票

向测试描述添加标签

在 Playwright 中,您可以使用 @tag 语法将标签添加到测试描述中。虽然从技术上讲您可以使用任何字符串作为标记,但建议坚持使用 @tag 约定以保持一致性。以下是如何向测试描述添加标签的示例:

test('user can login @smoke @login', async ({ page }) => {
  // Test implementation goes here
});

使用特定标签运行测试

Playwright 提供 --grep 和 --grep-invert 命令行标志来根据其标签运行测试。 --grep 标志允许您运行与特定标记模式匹配的测试,而 --grep-invert 允许您排除与该模式匹配的测试。以下是如何使用特定标签运行测试的一些示例:

# Run tests with the @smoke tag
npx playwright test --grep "@smoke"

# Run tests with the @login tag, excluding those with the @smoke tag
npx playwright test --grep "@login" --grep-invert "@smoke"

组合标签以进行复杂的测试选择

除了使用单个标签之外,您还可以组合多个标签来创建更复杂的测试选择标准。以下是如何执行此操作的一些示例:

# Run tests with either the @smoke or @login tag (logical OR)
npx playwright test --grep "@smoke|@login"

# Run tests with both the @smoke and @login tags (logical AND)
npx playwright test --grep "(?=.*@smoke)(?=.*@login)"

这些示例取自使用标签组织剧作家测试


0
投票

现有答案讨论

--grep
按名称过滤测试,但暗示您需要标签才能使用它。

鉴于您现有的无标签测试文件:

import {test} from "@playwright/test"; // ^1.42.1

test('test 1', async () => {});
test('test 2', async () => {});
test('test 3', async () => {});

您可以按如下方式运行

test 1

$ npx playwright test --grep "test 1$"

Running 1 test using 1 worker

  ✓  1 pw.test.js:39:6 › test 1 (10ms)

注意

$
锚点,确保您不会逃跑
test 11

但由于某种原因,

"^test 1$"
没有找到任何测试,所以我不确定如何过滤除标签之外的
"foo test 1"
。如果您知道如何做,请随时发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.