Playwright onEnd() 结果不包括文档指定的持续时间。我错过了什么?

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

内置方法

onEnd
可以有一个可在
onEnd
函数内访问的结果对象。根据文档here,它将包含属性
duration
,它是以毫秒为单位的数字。当我尝试访问
results.duration
时,该值未定义。

以下代码块应包括整个测试运行的开始时间、持续时间和结果。它不是。唯一定义的属性是

result.status

async onEnd(result): Promise<void> {
    const suiteData: LogSuiteData = {
        "@timeStamp": result.startTime,
        suiteDuration: result.durationMinutes,
        suiteResult: result.status,
    };

    logArray.push(suiteData);

    await logCallHandler.postReportDataBatch(logArray);
}

进一步挖掘使我找到了 Playwright 类型

FullResult
,该类型在文档中没有提及,但 Playwright 类型中定义的类型仅具有
status
属性,如 this 屏幕截图所示。

剧作家的官方文档是否不正确?难道我做错了什么?如有任何帮助,我们将不胜感激。

typescript automated-tests playwright duration playwright-typescript
1个回答
0
投票

您使用的是

result.durationMinutes
而不是
result.duration
。以下完整示例适用于我
@playwright/test
^1.42.1:

pw-reporter.js:

class MyReporter {
  onEnd(result) {
    console.log(result.duration);
  }
}

module.exports = MyReporter;

playwright.config.js:

import {defineConfig} from "@playwright/test";

export default defineConfig({
  reporter: [["./pw-reporter.js"]]
};

pw.test.js:

import {expect, test} from "@playwright/test";

test("1 is 1", async ({page}) => {
  await expect(1).toBe(1);
});

运行

npx playwright test
并查看持续时间,414.995 或类似值。

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