如何在 Playwright 中指示哪个项目启动设置(项目)过程

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

在我的 playwright.config 文件中,我有多个项目,它们都具有与依赖项目相同的安装项目。

有什么方法可以在运行时指示哪个父项目启动设置过程?

playwright.config

projects: [
    { name: "setup", testMatch: /.*\.setup\.ts/ },
    {
      name: "foo",
      dependencies: ["setup"],
    },
    {
      name: "bar",
      dependencies: ["setup"],
    },
]

setup test

setup("setup test", async ({ page }, testInfo) => {
  console.log(testInfo.project.name); // output: "setup"

  /* What I'm looking for: */
  // console.log(testInfo.paretProject.name);

  /* Or */
  // console.log(testInfo.project.parentName)
});

(或者可能以某种方式在项目依赖属性中提供发起者名称)

javascript typescript config playwright playwright-typescript
1个回答
0
投票

您可以执行此操作来获取所有父项目:过滤掉将当前项目作为依赖项的项目。

注意:这不会过滤掉未运行的项目,例如如果运行

npx playwright test --project "foo"
,两个父项目仍将被返回。

import { test as setup } from "@playwright/test";

setup("Setup", async ({}, testInfo) => {
  const parentProjects = testInfo.config.projects
    .filter((project) => project.dependencies.includes(testInfo.project.name))
    .map((project) => project.name);

  // returns: ['foo', 'bar']
  console.log(parentProjects);
});

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